kas ir hpc? augstas veiktspējas skaitļošana. leo trukšāns. dpa konference 2014
DESCRIPTION
TRANSCRIPT
Kas ir HPC?(augstas veiktspējas skaitļošana)
Leo TrukšānsLU DF lektors, LU MII pētnieks
2014.05.10
Sadalīto aprēķinu pieejas
● Priekšnoteikums:– Uzdevumam jābūt sadalāmam paralēli
veicamos darbos
● Vienmēr jāsinhronizē darbus, rezultātus
Sadalīto aprēķinu pieejas
● Divas pieejas:
Kopīga atmiņa (shared memory)
Sadalīta atmiņa (distributed memory)
Kopīga atmiņa
● Viegli sinhronizēt● Dati vienuviet● Muteksi, semafori,
spoles, utt.● Saziņa starp
procesiem notiek nanosekundēs!
Kopīga atmiņa
● Sistēmas mērogo ar daudziem procesoriem, kodoliem
● Daudzus procesorus savieno ar īpašiem starpsavienojumiem
Sadalīta atmiņa
Populārākās stratēģijas:
● Pakešu skaitļošana (batch computing)– Darbs ir palaist lietotni ar daļējiem
datiem
– Lieto: Puduros (cluster), Režģos (grid)
● Ziņojumu apmaiņa (message passing)– Darbs ir pieprasījums lietotnes
“protokolā”
– Lieto: HPC
Pakešu skaitļošana
● Apjomīga uzdevuma sadalīšana neatkarīgos un to paralēla izpildīšana
Pakešu skaitļošanas elementi
● Fiziskā infrastruktūra● Puduris● GRID starpprogrammatūra (middleware)● Lietojumprogrammatūra
Puduris
● Apvieno neatkarīgus serverus loģiskā vienībā
● Vienas organizācijas uzraudzībā● Mezglu skaits var sniegties tūkstošos● Parasti savienoti ar LAN● Tiek pārvaldīts ar t.s. CRM (cluster
resource manager)
LU MII puduris
● 232 kodoli (464 pavedieni)● 960GB RAM● 116TB HDD● Lieto LUMII, RTU, LU CFI zinātnieki
LU MII puduris
● Lietotāji saskarnes mezglam pieslēdzas ar SSH
● Failu piekļuvei – SFTP● Pudura iekšienē visiem mezgliem pieeja
vienotai datu vietai – NFS● Vienota lietotāju datubāze
LU MII puduris
● Pārbauda, ka darbs izpildās:
$ squeue
JOBID PARTITION NAME USER ST TIME NODE
4792 balticgri job1 lietotajs R 102:26:41 apse28
4790 balticgri job2 lietotajs R 200:29:21 apse26
4789 balticgri job3 lietotajs R 200:30:14 apse25
Režģis – puduru apvienojums
Režģis – puduru apvienojums
● Dod iespēju lietot citu organizāciju pudurus īpaši lieliem uzdevumiem
– BalticGrid – 10tiem tūkstoši kodolu
● Saziņai lieto starpprogrammatūru– Piemēri: gLite, NorduGrid ARC, u.c.
ARC starpprogrammatūra
● Advanced Resource Connector● Sākotnēji izstrādāta Skandināvijas GRID
vajadzībām● Šobrīd tiek lietota visā pasaulē
ARC darba piemērs
&
(executable="script.sh")
(arguments="&>&2")
(inputFiles=("script.sh" ""))
(outputFiles=
("stdout" "")
("stderr" "")
)
(jobName="ngtestjob")
(stdout="stdout")
(stderr="stderr")
(gmlog="gmlog")
(CPUTime="1000")
(count="1")
BalticGRID II
BalticGrid/EGI
● Eiropā galvenais attīstītājs – CERN● ATLAS projekts jeb Hadronu paātrinātājs● ~300GiB/s “RAW” dati● ~300MiB/s saglabājamie dati (~27TiB/24h)
Kas ir HPC?
Kas ir HPC?
Tā nav:● Procesora virstaktēšana (overclocking)● Pakešu skaitļošana, režģis● Mākonis (cloud)● Lieli dati (big data)
Kas ir HPC?
● Techopedia:High-performance computing (HPC) is the use of super computers and parallel processing techniques for solving complex computational problems. HPC technology focuses on developing parallel processing algorithms and systems by incorporating both administration and parallel computational techniques.
● Webopedia:A branch of computer science that concentrates on developing supercomputers and software to run on supercomputers. A main area of this discipline is developing parallel processing algorithms and software: programs that can be divided into little pieces so that each piece can be executed simultaneously by separate processors.
Kas ir HPC?
● Būtība: liela mēroga paralēlā skaitļošana– Ar kopīgu atmiņu vai MPI
● MPI ļauj:– Paralēli darbināt lietotnes instances
vairākos datoros un
– Apmainīties ar darbiem starp tām nanosekundēs (kā ar kopīgu atmiņu)
MPI
● Ir specifiskas realizācijas
Industrijas standarts:● OpenMPI
The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available.
OpenMPI
● Vispār darbināms virs daudziem transporta protokoliem
– Arī Ethernet
– Lietotnes ir abstrahētas no transporta, ko izvēlas izpildes laikā
● Lielākais efekts – uz īpašas RDMA infrastruktūras, piemēram:
– InfiniBand
– Myrinet
– u.c.
MPI “Hello world!”
#include <stdio.h>
#include <mpi.h>
#include <math.h>
void main (int argc, char *argv[])
{
int rank, size;
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Comm_size (MPI_COMM_WORLD, &size);
printf ("[%d.%s]: Hello World\n", rank, size);
MPI_Finalize();
return(0);
}
HPC pielietojumi
● Ja uzdevums ir paralēli rēķināms un ir svarīgs ātrums
● Nozares:– Finansu darījumi
– Biozinātnes
– Ģeogrāfiski dati
– Naftas un gāzes modelēšana
– Projektēšanas automatizācija
– Klimata modelēšana
– Mēdiji un izklaide
LU MII HPC piemērs
● ANSYS lietotne – konstrukciju mehānisku eksperimentu simulēšanai (u.d.c.)
● Darbināma gan:– ar MPI (lieliem modeļiem)
– pakešu režīmā (daudziem eksperimentiem)
● Uztaisīts uzdevumu šķēlējs (grinder)
Kas ir HPC(augstas veiktspējas skaitļošana)
Leo TrukšānsLU DF lektors, LU MII pētnieks
2014.05.10