view gpuvdm-cr.ind @ 3:199b0b0c80a7 default tip

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 17 Jun 2017 16:21:33 +0900
parents 9949bf3a5742
children
line wrap: on
line source

-title:   Informational infrastructure and management for education in faculty of engineering

-author: Shinji KONO, Associate Professor, University of the Ryukyus

--What I'm going to talk

   About our Faculty (Information Engineering, University of the Ryukyus)

   Part of my research

   Computer system of our faculty

   TreeVNC ( our lab's application ) for lecture/seminar


--University of the Ryukyus

   local national university
   8000 students
   Various faculty including Medicine


--Faculty of Information Engineering

    https://ie.u-ryukyu.ac.jp/external-information/

   60 students per year 
   Graduate course

--Our research area

    Artificial Intelligence
    Robotics
    Signal Processing
    Network System
    Parallel Programming    
    Distributed Programming    
    Circuit design
    VLSI design
    Voice recognition
    Decision Theory

--My research area

    Programming Languages

    Parallel Processing

    Distributed Computing

    Verification of Program

    Theory and Implementation of Meta Computation 

    http://www.ie.u-ryukyu.ac.jp/%7Ekono/papers.html


--My research area (Continuation based C)

<center><img src="fig/csds.svg"></center>

    % brew tap ie-developers/ie
    % brew install cbc

C with Code Segments, which is a slice of codes.

Code Segments are connected by parameterized goto.

    __code code1(int i, int j, __code next(int i, int j)) {
         i = i + j;
         goto next(i,j);
    }

A kind of low level language of C.

--Gears OS

<center><img src="fig/meta.svg"></center>

Normal level code is translated into meta level code in CbC.

    __code code1(struct context *c, int i, int j, int *o_i, int *o_j, enum Code next) {
         *o_i = i + j;
         goto meta(c,next);
    }

    __code code1_stub(struct context *c) {
        int i, j, int *o_i, *o_j; enum Code next;
        ...  get i, j etc from the data segment of code1
        goto code1(c,i, j, o_i, o_j, next);
    }

    __code meta(struct context *c, enum Code next) {
         goto (context->code[next])(context);
     }

Quite low level, but various kind of customization can be put in the meta section such as __code meta or stub.

--GPGPU kernel is a Code Segment

Description of a kernel is very similar to a Code Segment, we can use it as a Code Segment.

In Meta Computation, 

   CUDA management (such as buffer) 
   Memory management
   System call

--Computer System in Faculty of Engineering

<center><img src="fig/ie-sys.pdf"></center>

--Computer System in Faculty of Engineering
    4 x 2U PC Server
    KVM on GFS2 ( not VMware )
    VM management system written in Rail called Akatsuki
    Sakura Cloud 
    GMail (thanks to Google)

We don't have GPU Cluster, but we can access

   OIST 
   Kyusyu University

Very few faculties use GPU Cluster, if we can use GPU VDM...


--Specification

Sever x 2
    CPU Intel Xeon E5-2699 v3 (2.30GHz / 18 cores)
    CPU  2
    Memory 768GB (32GB x 24)
    HDD 600GB

Maintenance Server
    CPU Intel Core i7-6700 (3.40GHz / 4 cores)
    Memory 32GB (8GB x 4)
    SDD 240GB
    HDD 4TB

SAN iSCSI
    HDD SAS 1.2TB × 24 15000rpm RAID 6 19.7TB 
NAS 
    HDD SAS 4.0TB × 24 7200rpm RAID 6 68.5TB x 2


--System usage

    Web pages (WordPress)
    Services ( DHCP, LDAP)
    File Server
    hg / git Server
    brew cask server
    Redmine ( for system management)
    Jenkins ( for educational )
    Akatsuki ( VM management written in Ruby on Rails)

--Management and maintenance of the system

These systems are managed by our faculties and students.

    Design of the systems
    Implementation of the systems
    Backup
    Incident response ( power failure or security flaw )

--Every student has a MacBookPro

From 2002, at that time students buy iBook Dual USB. OS X 10.0.

The only Company supported consumer  Unix system.

No nVidia GPU ... (sad) ( it was supported in old MBP or old Mac Pro )

-- TreeVNC

VNC stands for Virtual Network Computing

It is actually a network protocol called RFB ( Remote Frame Buffer )

VNC is usually used in one to one connection, which is not suitable for educational purpose such as lecture or seminar.

Project or Large LCD Display is too far to show the source code.  Ex. Students wants to make a screen copy

Switching presenter's display cable of his PC is annoying.

--TreeVNC

<center><img src="fig/MultiNetworkTree.svg"></center>

TreeVNC connect VNC nodes as tree ( as overlay network in an LAN or WAN ), which makes multicast of VNC possible.

It also supports VNC server changes. It has "Share my screen" button, so a presenter can pass the screen to the next presenter.

It is a modification of TighVNC and written in Java.

    http://www.cr.ie.u-ryukyu.ac.jp/software/TreeVNC_en.html
--That's all, Thank you

<center><img src="fig/IMG_5814.jpg"></center>