Serviciul cloud "matlab paralel"

Serviciul cloud "Parallel Matlab"

Sozykin AV ([email protected]) - Institutul de Matematică și Mecanică, Filiala Ural a Academiei de Științe din Rusia, Ekaterinburg, Ekaterinburg, Rusia, Doctor în Științe Tehnice, ML Goldstein. ([email protected]) - Institutul de Matematică și Mecanică, Filiala Ural a Academiei de Științe din Rusia, Ekaterinburg, Ekaterinburg, Rusia, Cand.Tech.Sci., Gribova V.V. ([email protected]) - Institutul de Procese de Automatizare și Control, Divizia Orientul Îndepărtat, Academia Rusă de Științe, Vladivostok, Rusia, Doctor în Științe Tehnice, F. Moskalenko ([email protected]) - Institutul de Procese de Automatizare și Control, Divizia Orientul Îndepărtat, Academia Rusă de Științe, Vladivostok, Rusia, Doctor în Științe Tehnice

Dezvoltarea de programe pentru supercalculatoarelor moderne (SK), care cuprinde mii de nuclee de procesare și sute de accelerator (NVIDIA Tesla, Intel Xeon Phi), este o sarcină dificilă. Creșterea eficienței din Marea Britanie se poate datora pentru a oferi utilizatorilor un pachet familiar de software orientat-obiect care acceptă de calcul paralel. Un astfel de pachet este Matlab, care este în prezent utilizat pe scară largă pentru calcule științifice și inginerești. Cu toate acestea, versiunea paralelă a Matlab, precum și versiuni paralele ale altor pachete similare, este extrem de complex de instalat și de întreținut, ca urmare a utilizatorilor este aproape imposibil să se instaleze în mod independent, pachetul și să se asigure că funcționează în paralel pe IC.

Sarcina reală este de a oferi utilizatorilor Matlab, integrat cu IC, în configurația cloud utilizând modelul SaaS. Integrarea înseamnă abilitatea de a executa o sarcină de calcul pe SC din interfața grafică a Matlab și de a procesa, de asemenea, rezultatele calculelor, de exemplu, efectuarea vizualizării rezultatelor calculelor utilizând Matlab. Instalarea și întreținerea pachetului sunt efectuate de administratorii calificați ai platformei cloud, ceea ce le oferă utilizatorilor posibilitatea de a rezolva probleme științifice și tehnice și de a nu-și petrece timpul și efortul de instalare și administrare. Pentru a rezolva această problemă, se creează un serviciu cloud "Parallel Matlab".

Calculul paralel în Matlab

Matlab include mai multe mecanisme pentru efectuarea de calcule paralele. Abordarea cea mai simplă se bazează pe utilizarea multithreading și funcționează pe sisteme cu memorie partajată. Operațiunile Matrix, funcțiile algebrice liniare, calculele transformărilor Fourier și altele au o implementare multi-thread în Matlab, care permite utilizarea mai multor procesoare sau miezuri de procesoare. Pentru a utiliza multithreading, nu este nevoie să modificați programul și să achiziționați licențe suplimentare.

Matlab Parallel Computing Toolbox adaugă la capabilitățile standard ale instrumentelor Matlab pentru descrierea buclelor paralele și a rețelelor distribuite. Parallel Computing Toolbox funcționează pe servere cu memorie partajată și acceleratoare grafice.

Serverul Matlab Distributed Computing este conceput pentru a rula programele Matlab pe un cluster cu memorie distribuită. În același timp, unul sau mai multe procese Matlab sunt pornite pe fiecare nod al clusterului, care schimbă date între ele prin MPI. Serverul de calcul distribuit poate funcționa atât pe un cluster Matlab dedicat, cât și pe un cluster comun care rulează sistemul de lansare a sarcinilor.

Este posibil să împărtășiți diferitele abordări la calculul paralel în Matlab. De exemplu, puteți rula mai multe procese Matlab într-un cluster, fiecare dintre acestea utilizând o funcție multithreaded sau un GPU.

Astfel, pentru a efectua calculul paralel al Matlab pe NC, sunt necesare următoarele:

- SC cu serverul distribuit de calcul integrat integrat cu sistemul de lansare a sarcinilor;

- o stație de lucru pentru utilizatori cu o interfață grafică Matlab și Parallel Computing Toolbox, care va oferi posibilitatea de a trimite sarcini la coada de sarcini SC pentru calcul.

Locul de muncă al utilizatorului este oferit să fie plasat în nor și să ofere acces prin modelul SaaS.

Abordări existente pentru organizarea lucrării Matlab în configurația cloud

Universitatea Cornell a realizat proiectul «Matlab pe TeraGrid» din care [1], scopul a fost de a oferi utilizatorilor Matlab TeraGrid ca un serviciu, inclusiv prin utilizarea de portaluri, cooperarea științifică, cum ar fi nanohub.org [2]. Ca urmare a dezvoltării proiectului de la Cornell University (SUA) a stabilit Red Cloud platforma de nor [3], unul dintre serviciile oferite, care este Matlab. Red Cloud sugerează utilizarea unui cluster cloud cu un server de calcul distribuit pentru calculul paralel. Un client Matlab cu o unealtă Parallel Computing Toolbox care va executa activități pe cloud-ul cloud trebuie să fie instalat pe computerul utilizatorului. În acest caz, utilizatorul trebuie să instaleze și să configureze programe suplimentare necesare pentru a interacționa cu cloud Cloud Cloud.

Evident, în prezent, nu există o arhitectură general acceptată pentru furnizarea Matlabului ca serviciu de cloud pentru calculul paralel. Mathworks Cloud are capacități în mod esențial limitate, Matlab în Amazon EC2 este disponibil numai în SUA și Canada, iar detaliile muncii sale nu sunt deschise. Informații detaliate sunt disponibile în arhitectura Matlab din TeraGrid [1], dar această soluție necesită instalarea clientului Matlab și a software-ului suplimentar pe computerele utilizatorului.

Pentru servicii de nor „paralel Matlab» propunea o soluție arhitecturală, care vă permite să oferiți ca un serviciu nu numai de cluster Distributed Computing Server, dar GUI client Matlab și calcul paralel Toolbox. Astfel, utilizatorul nu are nevoie să instaleze și să configureze software suplimentar; pentru a lucra cu Matlab paralel este suficient să aveți doar un browser web. Schema dezvoltat de arhitectura de servicii cloud „paralel Matlab» este prezentată în figură.

Matlab cu o interfață grafică este instalat în platforma cloud și este furnizat utilizatorilor din modelul SaaS. Utilizatorii sunt accesați prin intermediul interfeței web utilizând VNC. Integrarea cu un supercomputer se realizează utilizând Parallel Computing Toolbox, care oferă posibilitatea de a interacționa cu managerul de resurse al supercomputerului. Parallel Computing Toolbox permite de la interfața grafică a Matlab să coadă o sarcină de calcul pe SC, să monitorizeze executarea sarcinii și după finalizarea calculelor pentru a descărca rezultatele pentru prelucrarea ulterioară în interfața grafică. Managerul de resurse SC înainte de începerea sarcinii asigură lansarea proceselor Matlab (lucrătorii Matlab) pe nodurile computerului SC, care apoi execută calcularea sarcinii.

Pentru colaborarea corectă a Matlab pe SC și în nor, este necesară rezolvarea a două sarcini auxiliare.

1. Codul de program și datele pregătite în cloud trebuie să fie disponibile pentru SC atunci când sarcina este lansată în cont.

2. Este necesar să se asigure mecanisme coordonate pentru controlul accesului utilizatorilor atât la platforma cloud, cât și la Marea Britanie.

Problema accesibilității programului și a codului de date poate fi rezolvată în două moduri. Datele și cod poate fi copiat de pe platforma de cloud pentru Marea Britanie înseamnă Instrumente de calcul paralel cu formularea problemei, în loc. Această abordare este ușor de implementat, dar nu funcționează bine cu cantități mari de date. O soluție alternativă este de a crea un sistem de stocare partajat, care este conectat atât platforma de cloud-based, precum și în Marea Britanie. În acest caz, programul și datele pregătite pe o platformă de nor, va fi disponibil imediat în Marea Britanie, fără o copie intermediară. Având în vedere că abordarea NC, în principal pentru a rezolva problemele de prelucrare a unor cantități mari de date la un serviciu de nor „paralel Matlab selectate» se bazează pe un sistem de stocare partajat, care evită copie intermediară a datelor de intrare și a rezultatelor de calcul. Dezavantajul acestei abordări este că serverele de platforme de cloud computing și nodurile IC trebuie să utilizeze același sistem de operare și aceeași tehnologie de acces la sistemul de stocare, care nu este întotdeauna convenabil.

Arhitectura propusă este implementată în IMB UrB RAS pe baza platformei cloud computerizate a UB RAS [4] și IC "URAN". În platforma cloud, se creează un set de mașini virtuale, în care Matlab este instalat cu o interfață grafică și un set de instrumente Parallel Computing Toolbox. Mașinile virtuale rulează științific Linux 6. Accesul utilizatorilor este organizat pe baza VNC [5] și a clientului web noVNC. Utilizatorii pot accesa serviciul utilizând un browser web (folosind noVNC) și un client VNC.

Integrarea cu supercomputerul "URAN" se bazează pe managerul de resurse SLURM [6]. Instrumentul Parallel Computing Toolbox nu include suportul integrat pentru lucrul cu SLURM, astfel că a fost utilizată interfața generică Scheduler, pentru care au fost dezvoltate funcțiile Client Submit și Decode cu suport SLURM. Atunci când sarcina este pornită, mașina virtuală cu Matlab pe platforma cloud stabilește o conexiune prin SSH cu computerul de gestionare URAN și folosește comenzile SLURM pentru a ceda sarcina. Stadiul sarcinii și rezultatele calculului pot fi monitorizate în interfața grafică Matlab de pe platforma cloud utilizând comenzile din Parallel Computing Toolbox.

În concluzie, menționăm că este descrisă abordarea organizării serviciului cloud "Parallel Matlab". Arhitectura de servicii cloud, o trăsătură distinctivă este faptul că utilizatorii sunt prevăzute cu nu numai cluster Compute cu serverul de calcul distribuit, dar, de asemenea, interfata grafica Matlab cu abilitatea de a rula sarcini de calcul peste un cluster folosind Parallel Computing Toolbox. Arhitectura propusă este implementată în IMM-based RAS UB platforma de cloud computing UB RAS si SC "Uranus". Aplicarea practică a confirmat capacitatea de lucru a arhitecturii propuse.

În prezent, restricțiile semnificative privind posibilitatea de a utiliza serviciul Parallel Matlab sunt impuse de politica de licențiere a companiei Mathworks, care nu oferă o licență pentru utilizarea în cloud. Doar organizația de licențiere poate colabora cu Matlab. Astfel, din cauza restricțiilor de licențiere punerea în aplicare actuală a serviciului, „Parallel Matlab“ este disponibil numai pentru angajații IMM UB RAS, care este un dezavantaj semnificativ, ca supercomputerul „Uranus“ este destinat pentru orice instituție, UB RAS.

Zonele pentru muncă suplimentară este crearea unui web virtuale de laborator „de programare paralelă în Matlab», care, în plus față de serviciul de nor „paralel Matlab», va include curriculum și metode de calcul paralele în Matlab. Este planificat să se ofere posibilitatea de a utiliza pe mașini virtuale cu interfață grafică Matlab OS Windows, care este revendicată de utilizatori. Pentru a face acest lucru, trebuie să rezolvați problema cu transferul de cod și date pregătite în Windows într-un cluster de calcul cu Linux.

Articole similare