Doc Matlab Matlab Computer Center din Universitatea de Stat din Novosibirsk

Lansarea interfeței grafice se face folosind tehnologia X Window. cu următoarea comandă:

GUI trebuie executat numai pe nodurile de cluster folosind modul interactiv PBS (# 'qsub -I -X ... #'), dar nu pe serverul de front-end.

Informații generale

Există mai multe moduri de a rula programele MATLAB utilizând un cluster:

Rularea programelor MATLAB în modul batch pe noduri separate. Pentru a face acest lucru, în descrierea scriptului de lansare a sarcinii, trebuie să apelați MATLAB cu comanda

cu condiția să existe un fișier numit myfunc.m în directorul curent. în care funcția myfunc este definită. În acest caz, numărul de lansări simultane este limitat de numărul de licențe pe care le deținem. Puteți efectua cinci calcule simultan.

Compilarea programelor MATLAB în executabile pentru a funcționa pe orice număr de computere. Pentru aceasta, se folosește compilatorul Matlab Compiler. Pentru a rula acest compilator este necesară o licență separată.

Rulați în modul paralel folosind matrice distribuite și acele funcții ale kernel-ului MATLAB pentru care există o implementare paralelă. Pentru a face acest lucru, trebuie să creați o matrice, care va fi trecută ca un argument pentru funcțiile MATLAB distribuite. Această opțiune va necesita modificări în programul MATLAB. Mai multe detalii găsiți în documentația pentru instrumentul Parallel Computing Toolbox. În acest mod, puteți utiliza 16 sau mai multe procese paralele.

Poate că metoda cea mai simplă este o metodă care nu necesită compilare, adică metoda nr. 1. Despre aceasta este descrisă mai detaliat în secțiunea următoare.

Rularea programelor MATLAB în modul lot

Un program simplu pe MATLAB poate fi rulat în modul lot. De exemplu, luați acest program:

Acest program generează o matrice pătrată aleatorie, calculează vectorul propriilor valori și scrie acest vector în fișierul eig.txt.

Vom scrie acest program în fișierul myfunc.m,

în același director, creați un fișier pentru a executa calculul run_myfunc.sh după cum urmează:

După un timp după ce ați setat calculul în coadă, cu comanda qsub run_myfunc.sh, fișierul eig.txt va fi creat în același director. conținând cinci numere reale sau complexe, calculate cu o singură precizie.

MATLAB Compilator

Mai jos sunt linkuri către paginile oficiale care descriu versiunea curentă a MATLAB Compiler. Deși există o versiune mai nouă decât cea instalată aici, link-urile pot fi totuși utile:

Fiecare utilizator înainte de prima utilizare a MATLAB Compiler trebuie să creeze un fișier personal cu parametrii de compilare. Pentru aceasta, efectuați următoarele pe serverul de front-end:

Comanda va afișa:

Trebuie să intrați # '1 # 'și apăsați butonul Enter.

Ca rezultat, fișierul cu setările standard de compilare va fi copiat în directorul de domiciliu al utilizatorului în fișier # '

Implicit, compilatorul de sistem GCC este utilizat pentru compilare, dar dacă este necesar, fișierul cu opțiuni poate fi ajustat de utilizator.

Rulați sarcina interactivă (# 'qsub -I -X ... #') pentru a accesa nodul de cluster.

Rulați nodul GUI MATLAB. treceți în partea de sus # APPS # și faceți clic pe săgeata din dreapta liniei cu pictogramele:

Doc Matlab Matlab Computer Center din Universitatea de Stat din Novosibirsk

În lista derulantă din secțiune # "Implementarea aplicației #" faceți clic pe pictograma # 'Compilator de aplicații # '. Ca rezultat, se deschide fereastra aplicației MATLAB Compiler.

Faceți clic pe pictograma # '+ #' în partea dreaptă a câmpului # 'Adăugați fișierul principal # ', selectați fișierul MATLAB #' și codul. De exemplu, permiteți-i să fie # 'myfunc.m #'

Faceți clic pe pictograma verde # "Pachetul # "în partea dreaptă.

Când compilația este finalizată, se deschide o fereastră cu trei 3 directoare care conține 3 versiuni ale aplicației compilate:

sau dacă distribuția este descărcată de pe site:

Rularea aplicației compilate din director # 'for_testing #' se face folosind scriptul # 'run_myfunc.sh #' (numele scriptului depinde de numele modulului), care trebuie să fie trecut ca parametru pentru MCR instalat:

scenariu # 'run_myfunc.sh #' configurează variabilele de mediu necesare în funcție de calea spre MCR instalată și execută următorul fișier executabil binar # 'myfunc #'.

Instrument de calcul paralel

O tehnologie care permite executarea în paralel a programelor pe mai multe nuclee de procesoare, precum și utilizarea NVidia GPU.

Server de calcul distribuit

Oferă posibilitatea de a rula programe MATLAB (inclusiv paralelizarea mai multor noduri de calcul) pe cluster, prin planificatoare diferite, inclusiv PBS Pro. Este dezvoltarea # 'Set de instrumente paralele de calcul #'. Utilizatorul lucrează prin interfața grafică standard MATLAB (denumită în continuare # 'client #') și prin aceasta primește resurse suplimentare de calcul pe cluster. Pe complexul nostru, există două posibile utilizări, personalizabile în diferite moduri:

Clientul funcționează pe nodul de cluster, utilizatorul interacționează cu acesta utilizând tehnologia X Window. Această metodă este preferată.

Clientul rulează pe computerul personal al utilizatorului, de unde există acces la cluster prin intermediul protocoalelor SSH / SFTP.

Configurarea clientului de cluster

Folosind sarcina interactivă PBS, intrați pe nod și rulați MATLAB prin fereastra X.

În fila Acasă, deschideți Mediu → Paralel → Gestionați profilurile de cluster.

În fereastra care apare, creați un profil: Adăugați → Custom → PBS Pro

presa # 'Edit # ', modificați acești parametri:

JobStorageLocation - director pentru fișierele temporare. În principiu, îl puteți lăsa necompletat, dar este mai bine să specificați un subdirector în directorul de acasă sau în spațiul de lucru.

NumWorkers = Numărul de nuclee de procesoare care vor fi solicitate.

Acordați atenție, de asemenea, la SubmitArgumet și ResourceTemplate - cu ajutorul acestora este posibilă transferul la o comandă # "qsub #" parametri adiționali și, de asemenea, modificați regula de generare # 'selectați #' pentru qsub.

Comutați la marcaj # 'Rezultatele validării #'. Apăsați butonul # "Validați # '. Toate testele trebuie să se încheie cu starea # "a trecut #".

Dacă doriți, prin meniul ferestrei # "Manager de profiluri de cluster" puteți să redenumiți profilul configurat și să-l setați ca # "profil implicit #".

Configurarea clientului pe PC

Dacă clientul rulează pe sistemul de operare Windows, trebuie să convertiți partea privată a cheii RSA personale la formatul utilizat de sistemele Unix:

Cu butonul # "Încărcați #" încărcați fișierul .ppk creat anterior

Salvați după cum este necesar: Conversie → Export Cheie OpenSSH

Fișierul rezultat ar trebui să conțină ceva de genul:

Accesați directorul de pe calculatorul personal în care este instalat MATLAB

Copiați conținutul subdirectorului # 'set de instrumente \ distrac \ examples \ integration \ pbs \ neshared # 'în # 'toolbox \ local \ # '

Deschideți fișierul # 'toolbox \ local \ getSubmitString.m # "și editați, înlocuiți

Rulați MATLAB, dacă a funcționat deja, reporniți-l.

În fila Acasă, deschideți Mediu → Paralel → Gestionați profilurile de cluster.

În fereastra care apare, creați un profil: Adăugați → Personalizat → Generic

presa # 'Edit # ', modificați acești parametri:

JobStorageLocation - director pentru fișierele temporare pe un computer personal

NumWorkers = număr, câte nuclee vor fi solicitate.

În loc de # '/ mnt / storage / home / hpcuser / matlab #' specifică calea spre director pentru fișierele temporare din cluster - fie în directorul de acasă, fie în spațiul de lucru.

În loc de # '/ mnt / storage / home / hpcuser / matlab #' specifică calea spre director pentru fișierele temporare din cluster - fie în directorul de acasă, fie în spațiul de lucru.

Comutați la marcaj # 'Rezultatele validării #'. Apăsați butonul # 'Validați #'. Vi se va cere să introduceți datele de conectare pe cluster, calea către fișierul creat anterior cu partea cheii private și o expresie de acces la acest fișier. Toate testele trebuie să se încheie cu starea # "a trecut #".

Dacă doriți, prin meniul ferestrei # "Manager de profiluri de cluster" puteți să redenumiți profilul configurat și să-l setați ca # "profil implicit #".