User Tools

Site Tools


Sidebar

contrib:rsoc:dhc

WLoHC

Workflow Layer of Heterogeneous Computing

Nume și descriere proiect

  • Prin definirea logica a relațiilor Proces-Date si maximizarea potențialului unei rețele de calculatoare, se poate ajunge la obținerea unor rezultate satisfăcătoare in timp util.
  • Luăm in considerare un algoritm care este prea complex pentru a fi executat pe un singur procesor fie el multicore.
  • In cadrul unei rețele sa presupunem ca majoritatea nodurilor beneficiază de o arhitectură multicore mixta (CPU+GPU).
  • Putem astfel recolta întreaga putere a unui rețele (având în vedere ca problema poate fi împărţită) prin calcul paralel/distribuit/eterogen.Aplicatia se vrea a fi un layer prin care poate duce la o rezolvare a acestei probleme.

Categorie aplicație

  • low-level/high-level mixture programming

Obiective

  • crearea/modificarea unui workflow pentru controlul fluxului de executie
  • crearea/adaptarea unui layer pentru distribuirea calcului local in functie de hardware
  • extragerea de informatii hardware din fiecare sistem nod si centralizarea sa la server
  • rezvolrea cel putin a unei probleme real world folosind modelul creat/ statistici referitoare le eficienta

Grup țintă

Persoane interesate si cu cunostinte de baza la:

  • tendinte evolutie hardware
  • calcul eterogen
  • calcul distribuit
  • controlul fluxului de executie procese/date

Limbaje de programare/biblioteci/aplicații/framework-uri folosite

Datorita multitudinii de optiuni in calculul eterogen si a distributiei acestuia in retea parte din optiunile enumerate pot fi schimbate inainte sau de-a lungul proiectului:

  • Programare C/C++ si/sau Java
  • OpenCL ( INTEL/AMD/NVIDIA/ATI ) - C99 derivat
  • BPEL pentru descrierea fluxului (incert)
  • posibil MPI / Open MPI

Cerințe necesare

  • cunostinte bune programare C/C++
  • cunostinte bune notiuni calcul paralel/distribuit (ex programare MPI/WCF/RMI)
  • cunostinte de baza calcul eterogen
  • cunostinte de baza arhitectura CPU-GPU

Cerințe recomandate

  • cunostinte OpenCL/ CUDA/ Stream
  • cunostinte aprofundate arhitectura GPU/CPU
  • cunostinte bune alte limbaje programare Java/Python…

Sisteme de calcul recomandate

  • Preferabil laptop
  • Dual Core CPU (Intel/AMD)
  • 2GB RAM
  • Placa video discreta cu suport STREAM sau CUDA.
    • Atentie suport dx10 != suport CUDA/STREAM
    • ATI - seria HD4 minim cu exceptii
    • NVIDIA - seria 8 minim cu exceptii

Cunoștințe/abilități dobândite

  • diferente arhitecturi CPU-GPU
  • programare arhitecturi eterogene
  • aprecierea problemelor ce pot fi rezolvate cu CPU/GPU
  • teamwork/comunicare
  • proiect orientat catre cercetare/ multe din tehnologiile in discutie inca in stadiu de dezvoltare

Roadmap

  • Interviu + Test: 29 iunie - 1 iulie
  • Rezultate: 1-2 iulie
  • 5-6 iulie: Trunchi Comun (prezentari – 2 zile)
    • prezentare generala proiect / planificare / stabilire program
    • prezentare arhitecturi CPU/GPU/Cell, tendinte tehnologice, proiecte cercetare
    • tehnologii openMPI/OpenMP,CUDA vs STREAM vs OPENCL, Java, diverse framework-uri
  • 7-9 iulie: Impartire/ Specializare Modul (prezentari – 3 zile)
    • impartire indivizi pe module, aprofundare / specializare
      • (1) Java workflow design / Job Generator / Java → C / aplicatie OpenCL
      • (2) Scheduler MPI / OpenCL/ monitorizare
      • (1) Distributie locala openCL CPU/GPU
  • Deadline 1
    • Java workflow design / Job Generator: 15 iulie
    • Scheduller alfa: 16 iulie
    • Distributie locala openCL CPU/GPU: 16 iulie
  • Deadline 2
    • Scheduller beta: 20 iulie
    • Aplicatie OpenCL - Algoritm fractali OpenCL: 21 iulie
    • Unificare si testare: 21-22 iulie

Draft arhitectură (componente principale)

 |----------------|           |-----------|
 | Java Workflow  |-----------| Job List  |------|
 |----------------|           |-----------|      |
                                                 |
                                                 |
                                             -----------------
                                            |   Scheduller   | eg. MPI - C
                                             -----------------
                                                    -
                                                    -  
                                            Nod<====-====>Nod --- CPU / GPU     - OpenCL
                                                               - interogare componente/monitorizare
                                            

Resurse disponibile

contrib/rsoc/dhc.txt · Last modified: 2020/07/20 09:16 (external edit)