Forum » Omrežja in internet » Infiniband (RMDA) v Ubuntu 22.04
Infiniband (RMDA) v Ubuntu 22.04
tiborrr ::
Zdravo,
rabil bi malo pomoči pri namestitvi IB v Ubuntu 22.04. Med node-i mini clusterja imam kartice ConnectX-3 (IB FDR 56Gbps), ki pa so podprte le v OFED driverju 4.9.x, le-ta pa ima zadnjo podporo za Ubuntu 20.x in temu primerno starejši kernel.
Uspelo mi je namestiti rdma-core gonilnike, vendar mi ne uspe usposobiti RDMA, deluje le IB v ethernet transportu (IPoIB). MPI mi zato deluje v TCP načinu namesto IB, prav tako NFS. Zaradi tega imam težave s inter-node skaliranjem. Zadeva je switchless z DAC kabli, main node ima opensm.
Aplikacija IB-ja je OpenMPI + OpenFOAM. Obstaja kak heroj, ki mi zna pomagati (lokacija Lj)?
LP,
N.
rabil bi malo pomoči pri namestitvi IB v Ubuntu 22.04. Med node-i mini clusterja imam kartice ConnectX-3 (IB FDR 56Gbps), ki pa so podprte le v OFED driverju 4.9.x, le-ta pa ima zadnjo podporo za Ubuntu 20.x in temu primerno starejši kernel.
Uspelo mi je namestiti rdma-core gonilnike, vendar mi ne uspe usposobiti RDMA, deluje le IB v ethernet transportu (IPoIB). MPI mi zato deluje v TCP načinu namesto IB, prav tako NFS. Zaradi tega imam težave s inter-node skaliranjem. Zadeva je switchless z DAC kabli, main node ima opensm.
Aplikacija IB-ja je OpenMPI + OpenFOAM. Obstaja kak heroj, ki mi zna pomagati (lokacija Lj)?
LP,
N.
Don't test the captain's validity or his vulnerability!
pegasus ::
U, stara krama. Pri nas smo se ConnectX-3 znebili že pred leti ;)
Če ti IPoIB špila, potem ti IB špila. Koliko svež OpenMPI želiš? Ker sveži načeloma podpirajo samo še UCX, ta pa ne vem kako dela s temi starejšimi karticami.
Tudi ubuntu mi je nenavadna izbira, nimam izkušenj z njim v hpc svetu. Lahko pa poskusiš kako starejšo OpenHPC distribucijo, za OpenFOAM pa uporabiš eessi. Ma da špila.
Switchless ... koliko nodeov imaš to? Dva?
Če ti IPoIB špila, potem ti IB špila. Koliko svež OpenMPI želiš? Ker sveži načeloma podpirajo samo še UCX, ta pa ne vem kako dela s temi starejšimi karticami.
Tudi ubuntu mi je nenavadna izbira, nimam izkušenj z njim v hpc svetu. Lahko pa poskusiš kako starejšo OpenHPC distribucijo, za OpenFOAM pa uporabiš eessi. Ma da špila.
Switchless ... koliko nodeov imaš to? Dva?
tiborrr ::
Trije nodei.
Ja, zato pa jih imam, ker so za kusur na eBayju. Desetaka za 1P, dvajset za 2P verzijo.
Ubuntu je zato, ker sem v njem najbolj domač, nobenega drugega razloga ni.
OpenMPI je 4.1.6, vendar sem bral na netu da default konfiguracija ignorira IB in MPI deluje v TCP načinu.
Če preverim ompi_info ne dobim nič:
Perftest pljune sledeče:
Ja, zato pa jih imam, ker so za kusur na eBayju. Desetaka za 1P, dvajset za 2P verzijo.
Ubuntu je zato, ker sem v njem najbolj domač, nobenega drugega razloga ni.
OpenMPI je 4.1.6, vendar sem bral na netu da default konfiguracija ignorira IB in MPI deluje v TCP načinu.
Če preverim ompi_info ne dobim nič:
hpc@HPC-01:~$ ompi_info | grep openib
hpc@HPC-01:~$
Perftest pljune sledeče:
hpc@HPC-01:~$ ib_write_bw HPC-02
---------------------------------------------------------------------------------------
RDMA_Write BW Test
Dual-port : OFF Device : ibp129s0
Number of qps : 1 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : OFF
TX depth : 128
CQ Moderation : 1
Mtu : 2048[B]
Link type : IB
Max inline data : 0[B]
rdma_cm QPs : OFF
Data ex. method : Ethernet
---------------------------------------------------------------------------------------
local address: LID 0x04 QPN 0x02a0 PSN 0x90d4c6 RKey 0x8010000 VAddr 0x0071e607d56000
remote address: LID 0x02 QPN 0x02a7 PSN 0x5e47e RKey 0x010000 VAddr 0x007335f4d8e000
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps]
Conflicting CPU frequency values detected: 1500.000000 != 2550.000000. CPU Frequency is not max.
65536 5000 5742.93 5742.66 0.091883
---------------------------------------------------------------------------------------
hpc@HPC-01:~$ ibstat
CA 'ibp129s0'
CA type: MT4099
Number of ports: 1
Firmware version: 2.42.5000
Hardware version: 1
Node GUID: 0x0002c90300191470
System image GUID: 0x0002c90300191473
Port 1:
State: Active
Physical state: LinkUp
Rate: 56
Base lid: 4
LMC: 0
SM lid: 4
Capability mask: 0x0251486a
Port GUID: 0x0002c90300191471
Link layer: InfiniBand
Don't test the captain's validity or his vulnerability!
pegasus ::
Ta OpenMPI imaš iz ubuntu repozitorijev? Očitno ni preveden z OpenIB?
Jaz se sploh ne bi matral z njim ... namesti si eessi, tam imaš openmpi, openfoam in vse ostalo: https://www.eessi.io/docs/getting_acces...
Jaz se sploh ne bi matral z njim ... namesti si eessi, tam imaš openmpi, openfoam in vse ostalo: https://www.eessi.io/docs/getting_acces...
tiborrr ::
Ne, potegnil sem ga dol iz
In ga prevedel tako:
Je treba kako drugače?
https://www.open-mpi.org/faq/?category=...
wget https://download.open-mpi.org/release/o...
In ga prevedel tako:
./configure --prefix=/opt/openmpi-4.1.6
make -j 4 all
sudo make install
Je treba kako drugače?
https://www.open-mpi.org/faq/?category=...
Don't test the captain's validity or his vulnerability!
pegasus ::
Po želji ... predstavljam si, da je najmanj kar rabiš za te starejše kartice --with-verbs. Preglej še libfabric in ucx docs, če delajo z njimi.
Moj openmpi configure se sicer razteza čez tri vrstice :D Buildam pa z easybuildom.
Ampak še enkrat ... uporabi eessi, tam je to že vse rešeno.
Moj openmpi configure se sicer razteza čez tri vrstice :D Buildam pa z easybuildom.
Ampak še enkrat ... uporabi eessi, tam je to že vse rešeno.
jeremenen ::
Tudi ubuntu mi je nenavadna izbira
Kaj se pa ponavadi uporablja, Red hat (zaradi supporta?)?
tiborrr ::
Eto, --with-verbs, ne --with-openib
Bom zdaj recompilal in poročam.
Bom zdaj recompilal in poročam.
Don't test the captain's validity or his vulnerability!
pegasus ::
Kaj se pa ponavadi uporablja, Red hat (zaradi supporta?)?Večina gruč je na redhatu in klonih, da. Tehnično lahko uporabiš karkoli, a moraš potem računat, da boš bolj pogosto naletel na nepričakovane težave, ker se izbrane rešitve ne testirajo pogosto na non-rhel distribucijah. Pa še ubuntu ima zadnje čase neke svoje ideje, kako naj bi se python zadeve nameščale ...
Razen cray compute environment, oni imajo suse za osnovo ;)
tiborrr ::
Po želji ... predstavljam si, da je najmanj kar rabiš za te starejše kartice --with-verbs. Preglej še libfabric in ucx docs, če delajo z njimi.
Moj openmpi configure se sicer razteza čez tri vrstice :D Buildam pa z easybuildom.
Ampak še enkrat ... uporabi eessi, tam je to že vse rešeno.
Med konfiguracijo ./configure --with-verbs --prefix=/opt/openmpi-4.1.6 vrže težave:
--- MCA component common:verbs (m4 configuration macro)
checking for MCA component common:verbs compile mode... dso
checking if want to add padding to the openib BTL control header... no
checking for fcntl.h... (cached) yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking infiniband/verbs.h usability... no
checking infiniband/verbs.h presence... no
checking for infiniband/verbs.h... no
checking if ConnectX XRC support is enabled... no
checking if ConnectIB XRC support is enabled... no
checking if dynamic SL is enabled... no
configure: WARNING: Verbs support requested (via --with-verbs) but not found.
configure: WARNING: If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs.
configure: error: Aborting.
Ha, kot kaže je falil libibverbs-dev paket
Don't test the captain's validity or his vulnerability!
Zgodovina sprememb…
- spremenil: tiborrr ()
pegasus ::
Jah libibverbs moraš imeti nameščen ... ali iz OSa (ponavadi starejša, bolj generična verzija) ali pa iz ofed paketa (novejša, bolj bleeding edge verzija). Samo poskrbi, da boš imel isto verzijo na vseh treh piksnah.
Da, z -dev headerji :)
Da, z -dev headerji :)
Zgodovina sprememb…
- spremenil: pegasus ()
tiborrr ::
Zdaj nekaj divje dolgo konfigurira in kompajla, brez errorjev, upajmo da bo :)
SUCCESS
pegasus, care kot vedno!
SUCCESS
hpc@HPC-01:~/openmpi-4.1.6$ ompi_info | grep openib
MCA btl: openib (MCA v2.1.0, API v3.1.0, Component v4.1.6)
pegasus, care kot vedno!
Don't test the captain's validity or his vulnerability!
Zgodovina sprememb…
- spremenil: tiborrr ()
pegasus ::
Zdaj lahko zadevo preizkusiš tako, da poženeš vse zanimive teste iz paketa OSU micro benchmarks. https://mvapich.cse.ohio-state.edu/benc...
In če ti je dolgčas, lahko začneš še tjunat mpi stack. Ena enostavna in zanimiva zadeva v to smer je knem: https://knem.gitlabpages.inria.fr/
In če ti je dolgčas, lahko začneš še tjunat mpi stack. Ena enostavna in zanimiva zadeva v to smer je knem: https://knem.gitlabpages.inria.fr/
tiborrr ::
@pegasus
Eh, noben env variable ne pomaga v OpenFOAM, da izključim tcp, če pa mi karte laufajo v tcp modeu.
Na koncu sem prišel do zaključka, da brez MLNX OFED 4.9 ne bo nič z verbsi. Z default stackom dela samo IPoIB, ostalo ne.
ConnectX-3 kartice z driverjem 4.9 so podprte le do Ubuntu 20.04, obstaja pa Rocky Linux 8.8 LTS s podporo do 2029, poleg RHEL seveda.
Ker se mi trenutno ne da jebat z Rocky Linux, sem vzel ConnectX-4, ki delajo tudi na najnovejšem driverju. Nekih 70 pesiča po komadu.
Poročam, ko dobim.
Eh, noben env variable ne pomaga v OpenFOAM, da izključim tcp, če pa mi karte laufajo v tcp modeu.
Na koncu sem prišel do zaključka, da brez MLNX OFED 4.9 ne bo nič z verbsi. Z default stackom dela samo IPoIB, ostalo ne.
ConnectX-3 kartice z driverjem 4.9 so podprte le do Ubuntu 20.04, obstaja pa Rocky Linux 8.8 LTS s podporo do 2029, poleg RHEL seveda.
Ker se mi trenutno ne da jebat z Rocky Linux, sem vzel ConnectX-4, ki delajo tudi na najnovejšem driverju. Nekih 70 pesiča po komadu.
Poročam, ko dobim.
Don't test the captain's validity or his vulnerability!
pegasus ::
Again ... try eessi, stestiraj vse z OSU micro benchmarks in šele potem, ko vidiš da ti tam stvari špilajo, greš na heavyweight ala OpenFOAM.
Also OpenMPI vzame interface in protokol, ki se mu zdi najboljši, tcp je vedno le nekakšen fallback. Da se ga vprašat, kaj vidi da je na voljo in kaj izbere, a trenutno ne najdem faqa.
Kaj pomeni, da ti "karte laufajo v tcp modeu"? Vidiš v OSu ib ali eth interfejse? Za cx-3 se ne spomnim, a -4 in novejše z VPI funkcijo lahko preprogramiraš kot eth ali kot ib karte. Glej firmware toole, tam notri je en port mode setting. V novejših z enablanim efi firmwareom je super, ker se ti ta opcija pojavi že v biosu. Ampak pazi, to dela samo na original mellanox kartah, Dell in Supermicro branded tega vpi fičurja ne exposajo ;)
Also OpenMPI vzame interface in protokol, ki se mu zdi najboljši, tcp je vedno le nekakšen fallback. Da se ga vprašat, kaj vidi da je na voljo in kaj izbere, a trenutno ne najdem faqa.
Kaj pomeni, da ti "karte laufajo v tcp modeu"? Vidiš v OSu ib ali eth interfejse? Za cx-3 se ne spomnim, a -4 in novejše z VPI funkcijo lahko preprogramiraš kot eth ali kot ib karte. Glej firmware toole, tam notri je en port mode setting. V novejših z enablanim efi firmwareom je super, ker se ti ta opcija pojavi že v biosu. Ampak pazi, to dela samo na original mellanox kartah, Dell in Supermicro branded tega vpi fičurja ne exposajo ;)
Zgodovina sprememb…
- spremenil: pegasus ()
tiborrr ::
Na žalost haz rabim OpenFOAM, ker je to bread & butter, usposobitev tega sistema je samo način, da pridem hitreje do rezultatov.
Benčmarke sem probal, na žalost mi že ib_write_bw napiše, da je transfer mode ethernet in da RMDA ne dela. rc_pingpong tudi ne dele pravilno. Načeloma vse, kar je na RDMA, krepne, kar potrjuje mojo tezo.
Ja, to je problem, vzame TCP ker verbsi ne delajo z default driverjem. Nujno rabi MLNX OFED, ki pa ne dela na trenutnem sistemu - novejši driver ne podpira CX-3, starejši, ki pa podpira CX-3, pa ne dela na trenutnem sistemu.
Nič ne pomaga, da daš v /etc/bash.bashrc sledeče, če RDMA ne dela, ker manjka komplet OFED stack. Drugače so komande sledeče:
Tudi CX-3 je VPI, pač prestaviš mode na IB. Ampak brez MLNX OFED 4.9 dela samo kot IPoIB karta, RDMA ne dela. Imam original mellanox karte.
CX-4 it is.
Benčmarke sem probal, na žalost mi že ib_write_bw napiše, da je transfer mode ethernet in da RMDA ne dela. rc_pingpong tudi ne dele pravilno. Načeloma vse, kar je na RDMA, krepne, kar potrjuje mojo tezo.
Ja, to je problem, vzame TCP ker verbsi ne delajo z default driverjem. Nujno rabi MLNX OFED, ki pa ne dela na trenutnem sistemu - novejši driver ne podpira CX-3, starejši, ki pa podpira CX-3, pa ne dela na trenutnem sistemu.
Nič ne pomaga, da daš v /etc/bash.bashrc sledeče, če RDMA ne dela, ker manjka komplet OFED stack. Drugače so komande sledeče:
export OMPI_MCA_btl="openib,self,vader"
export OMPI_MCA_btl_openib_allow_ib=1
export OMPI_MCA_btl=^tcp
export OMPI_MCA_mtl=^tcp
Tudi CX-3 je VPI, pač prestaviš mode na IB. Ampak brez MLNX OFED 4.9 dela samo kot IPoIB karta, RDMA ne dela. Imam original mellanox karte.
CX-4 it is.
Don't test the captain's validity or his vulnerability!
Zgodovina sprememb…
- spremenil: tiborrr ()
pegasus ::
Benčmarke sem probal, na žalost mi že ib_write_bw napiše, da je transfer mode ethernet in da RMDA ne dela.Da, zato se te zadeve uporablja kar v testsuitah ;) Zelo priročni testi za preverit stanje mpi implementacije....
Btw, na redditu en pravi, da mu delajo z UCX:
https://www.reddit.com/r/HPC/comments/1...
Zgodovina sprememb…
- spremenil: pegasus ()
tiborrr ::
Btw, na redditu en pravi, da mu delajo z UCX:
https://www.reddit.com/r/HPC/comments/1...
dnf... izgleda kot Rocky oz. Alma oz. RHEL. To sem tudi jaz prebral na uradni strani NVIDIE. Ubuntu žal ne.
Drugače pa, še enkrat hvala za vso pomoč pegasus, te bom še pocukal, če me bo s CX-4 kaj zafrkavalo.
Don't test the captain's validity or his vulnerability!
Zgodovina sprememb…
- spremenil: tiborrr ()
pegasus ::
Aha, to spada pod "nepričakovane" težave. Ne vidim zakaj to ne bi špilalo na ubuntuju ... sicer pa lahko vedno prevedeš svoj ucx in ga podtakneš openmpiju.
Btw, kakšne piksne imaš?
Btw, kakšne piksne imaš?
tiborrr ::
Dobro si to rekel :D
Piksne so Dual Genoa-X 9684X z 768GB D5, taglavni node ima še 4x4TB Raid0 NVMe
Piksne so Dual Genoa-X 9684X z 768GB D5, taglavni node ima še 4x4TB Raid0 NVMe
Don't test the captain's validity or his vulnerability!
tiborrr ::
A je dejansko kakšna razlika še v MPI/cluster, ko si enkrat v rangu 0.5us latence, če rečeva, da človek ne rabi 200Gbps BW (nimaš toliko nodeov)?
Don't test the captain's validity or his vulnerability!
pegasus ::
Good q. Pri latenci nekih hudih premikov ni več, ker je fizika pač fizika. Mogoče bo kaj, ko bodo šli na optiko in direktno na cpu. Tudi ultraethernet folk zaenkrat modro ne govori o številkah ...
Ales ::
... podprte le do Ubuntu 20.04, obstaja pa Rocky Linux 8.8 LTS s podporo do 2029, poleg RHEL seveda ...
Original RHEL je že nekaj časa zastonj za dev uporabnike, le prijava je potrebna. Samo povem, ker dosti ljudi tega še vedno ne ve.
Od klonov toplo priporočam AlmaLinux, ne Rocky (ampak za tvoje potrebe je verjetno vseeno).
Striktno s tehničnega vidika bi še boljša izbira bil Oracle Linux, ampak zaradi same firme in njihovih praks... raje ne.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | CFD testOddelek: Navijanje | 5234 (2172) | pegasus |
» | Supercomputer (cluster)Oddelek: Pomoč in nasveti | 4769 (3444) | johnnyyy |
» | Oblak doma?Oddelek: Operacijski sistemi | 1766 (1156) | pegasus |
» | Paralelno programiranje in platformeOddelek: Programiranje | 1830 (1314) | terryww |
» | Igre za linuxOddelek: Igre | 1820 (1401) | NoUse4AName |