**InfiniBand** (IB) on skaleeritav suure läbilaskevõime ja väikese latentsusega suhtlusstandard. Seda kasutatakse paljudes andmekeskustes ja superarvutites serveritevahelise ja serveritesisese ühendusena. InfiniBand on jadaliides, mis kasutab kangasdisaini ja võimaldab ühte võrku ühendada 64 000 seadet ja ribalaiusi alates 2,5 Gb/s ühendusepaari kohta. Neid kasutatakse andmekeskuste superarvutites, mis tegelevad paralleelarvutusega.

InfiniBand laienduskaart
InfiniBandi arendab IBTA (InfiniBand Trade Association), mis koondab 26 (2020. aasta mai seisuga) juhtivat infotehnoloogia ettevõtet, mis tegelevad standardi säilitamise ja edasiarendusega.

Spetsifikatsioon
----------------

InfiniBand on loodud töötama programmidega otse, et anda programmidele lihtne viis teiste programmide ja mäluga suhtlemiseks. Selle asemel, et lasta programmil läbi API operatsioonisüsteemi millelegi ligipääsu taotleda, saavad programmid otse IB-d kasutades jätta eelnevad sammud vahele. InfiniBand annab igale programmile, mis on loodud seda kasutama otsese ligipääsu sõnumiteenusele. Erinevalt TCP/IP mudelist ei oma operatsioonisüsteem võrgu ressursse. InfiniBand väldib seda kasutades võtet hierarhia vahelejätmine (*Stack Buypass*), kuid säilitades programmidevahelise isolatsiooni ja kaitse, mida tavaliselt pakub operatsioonisüsteem. InfiniBand annab iga suhtluskanali otspunktidele (QP) nimed, mida hoitakse programmi virtuaalses aadressiruumis. See võimaldab ühendatud programmidel (või programmil mäluga) saata ja võtta sõnumeid otse vastu.

|   | SDR | DDR | QDR | FDR10 | FDR | EDR | HDR | NDR | XDR |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Ribalaius (Gbit/s) | 0002.5 | 0005 | 0010 | 0010.3125 | 0014.0625 | 0025.78125 | 0050 | 0100 | 0250 |
| Teoreetiline 
läbilaskevõime
(Gb/s) | 1x link s | 0002 | 0004 | 0008 | 0010 | 0013.64 | 0025 | 0050 | 0100 | 0250 |
| 4x link | 0008 | 0016 | 0032 | 0040 | 0054.54 | 0100 | 0200 | 0400 | 1000 |
| 8x links | 0016 | 0032 | 0064 | 0080 | 0109.08 | 0200 | 0400 | 0800 | 2000 |
| 12x links | 0024 | 0048 | 0096 | 0120 | 0163.64 | 0300 | 0600 | 1200 | 3000 |
| Kodeering (bitti) | 8b/10b | 64b/66b | t.b.d. | t.b.d. |
| Adapteri latentsus (µs) | 0005 | 0002.5 | 0001.3 | 0000.7 | 0000.7 | 0000.5 | less? | t.b.d. | t.b.d. |
| Avaldamisaasta | 2001, 2003 | 2005 | 2007 | 2011 | 2011 | 2014 | 2017 | 2020 | peale 2023? |

### Topoloogia

Näide lülitatud-kangasdisainist
InfiniBand põhineb lülitatud kangasdisainil (*Switched fabric*). Sellise disaini puhul ühendatakse võrgu sõlmed läbi ühe või mitme *switchi* ning iga ühenduse lõpus on täpselt üks seade. Selline lähenemine võimaldab andmeid jagada mitme ühenduse vahel ning erinevalt jagatud siini (*shared bus*) arhitektuurist on võimalik kangasdisaini sisemist ribalaiust suurendada. Selleks tuleb lihtsalt lisada võrku rohkem *switche*, et lõppsõlmede vahel oleks rohkem ühendusi. Samuti on selline lähenemine väga veakindel, kuna iga lõppsõlme vahel on mitu lisaühendust, mis on andmekeskustes ja superarvutites väga oluline.

IB toetab erineva prioriteediga andmepakettide saatmist, mis võimaldab kõrgema prioriteediga sõnumeid saata ilma vähemtähtsate järel ootmata. Selline lähenemine tõstab veelgi süsteemi teenuse kvaliteeti.

### Andmepaketid

IB toetab kahte sorti sõnumeid: saada-võta vastu (*SEND-RECIVE*) ja otsemälust lugemine ja otsemällu kirjutused (*RDMA READ-RDMA WRITE*). Saada-võta vastu sõnumeid saates määrab vastu võttev programm ära andmekodeeringu. Mällu kirjutamiseks paneb programm salvestamist ootavad andmed oma virtuaalsesse puhverregistrisse ja teavitab mälu soovist see salvestada, selle peale mäluseade loeb puhverregistri sisu ja salvestab selle, saates programmile tagasi teate, kui protsess on lõpetatud. See võimaldab programmil samal ajal muude tegevustega tegeleda. InfiniBand toetab sõnumeid kuni 2^31 baiti ning jagab ise sõnumi optimaalse suurusega pakkideks. Pakkide optimaalne suurus erineb olenevalt võrgu konfiguratsioonist.

### Füüsilised ühendused

4x InfiniBand QSFP pesa
InfiniBand oli esimene arhitektuur, mis loodi kasutuseks nii trükkplaatidel kui süsteemide vahelistes juhtmetes. IB võib kasutada nii vask- kui ka kiudoptilisi kaableid. Erinevad IB generatsioonid kasutavad erinevaid pistikuid ja võimaldavad erineva kaugusega ühendusi.

IB SDR ja DDR võimaldasid vasktraati kasutades luua kuni 17 m ühendusi ning kasutasid QSFP-pistikuid, mis võimaldavad andmeedastuskiirust kuni 4 Gbit/s.

IB QDR vähendas maksimaalset vaskkaabli pikkust 7 m peale ja toetab kiudoptilisi kaableid kuni 10 km. Samuti läks üle uuemale pistikule QSFP+, mis võimaldab kiirusi kuni 40 Gbit/s.

IB FDR kasutab pistikut QSFP14 ning võimaldab kiirusi kuni 50 Gbit/s, FDR toetas samuti kiudoptilisi kaableid ning Mellanoxi MetroX adapteritega suutis edastada andmeid kuni 80 km kaugusele.

IB EDR kasutab pistikut QSFP28 (tuntud ka kui QSPF100 või 100G QSFP), mis võimaldab kiirusi kuni 100 Gbit/s ja disainiti 100 Gbit/s Etherneti jaoks. EDR toetab kiudoptilise kaabliga ühendusi kuni 10 km.

IB HDR kasutab pistikut QSFP56 (vahel tuntud kui 200G QSFP), mis on füüsiliselt eelmisega identne, kuid erineb elektriliselt kasutades neljatasemelist impulsi amplituudi modulatsioon (PAM-4), erinevalt eelnevalt kasutatud mitte nulli tagasipöörduvast (NRZ) signaalist. HDR toetab kiudoptilise kaabliga ühendusi kuni 40 km.

### Vajalik riistvara

InfiniBandi kangas koosneb *host*kanali adapteritest (HCA), sihtkanali adapteritest (TCA), *switch*idest, ruuteritest ja kaablitest.

* HCA ühendab serveri InfiniBandi kangale ja sisaldab aadressi tõlkimise mehhanisme, mis võimaldavad HCA moodulil otse programmidega suhelda.
* TCA on manuskeskkonnale (näiteks salvestusseadmele) spetsialiseerunud HCA, tänapäeval vähelevinud, kuna enamasti kasutatakse tavalisi serveriemaplaate ja operatsioonisüsteeme.
* *Switch* sarnaneb kontseptsioonilt tavaliste interneti *switch*idega, kasutades teisi ühendusi ja riistvara, et ülejäänud võrguga sama kiire olla. Normaaloperatsioonide puhul ei kaota IB ühtegi paketti, nagu tihti juhtub teiste protokollidega.
* Ruuter IB kangal sarnaneb samuti tavaliste ruuteritega ning võimaldab suured võrgud jagada väiksemateks alamvõrkudeks.
* Kaablid võivad olla kas vasest või kiudoptilised ning määravad ära ühenduse liigi (1x, 2x, 4x, 8x, 12x).

Ajalugu
-------

IBTA asutati 1999. eesmärgiga luua skaleeritav riistvaraline arhitektuur, mis oleks töökindel ja kiire nii andmete edastamisel kui ka otsemällupöördustel ilma tarkvaraliste sekkumisteta. IBTA sündis kahe konkureeriva disaini ühendamisest. IBTA asutajaliikmeteks olid Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft ja Sun Microsystems. Ettevõtteid ajendas uut lahendust otsima kiiresti lähenev PCI ja PCI-X siinide maksimaalne ribalaius, mis kiires interneti arengus pudelikaelaks hakkas jääma. Inspiratsiooni saadi valguskaablite disainilt, kus kasutati jadaühendust palju kõrgematel taktisagedustel kui eelnevalt kasutatud paralleelühendused võimaldasid, kuid sooviti vältida kalleid kiudoptilisi kaableid ning kasutada vaskühendusi. Neid kahte kriteeriumit jälgides suutis IB saavutada taktisagedusi GHz lähedal samaaegselt olles 1/10 kiudoptiliste konkurentide hinnast.

InfiniBand 1.0 ehk SDR (*Single Data Rate* – ühekordne andmeedastuskiirus) spetsifikatsioon avaldati aastal 2000 ning IBTA visioon oli sellega asendada PCI-siin, serveriruumide Ethernet ja Klastrite ühenduseks kasutatud erinevad standardid, SDR võimaldas kasutada kuni 17 m pikki vaskkaableid ilma probleemideta. Hilisemate versioonidega sooviti ehitada terved serverid otse IB kangastruktuurile, kuid 2000. aastal lõhkenud *dot-com* mulli järelmõjudes ei soovinud turuliidrid nii suuri investeeringuid teha ning idee jäeti maha.

2002 sattus InfiniBandi tulevik suure küsimärgi alla, kui Intel teatas, et lõpetab IB arenduse ning keskendub PCI Express siini arendusele, sellele järgnes ka Microsofti eemaldumine IB-st, kuna arvati, et kasutajad eelistaks Etherneti IB-le. Siiski mitmed firmad jätkasid IB arendamist, nimekamatest Sun Microsystems ja Hitachi.

InfiniBand DDR (*Double Data Rate* – kahekordne andmeedastuskiirus) jõudis turule 2005. aastal, kui Mellanox Technologies hakkas pakkuma 20 Gb/s adaptereid ja üleminekuid. See tehnoloogiline hüpe tõstis Mellanoxi serveritevahelise ja serveri-andmekeskuse vaheliste ühenduste turuliidriks. 

InfiniBand QDR (*Quad Data Rate* – neljakordne andmeedastuskiirus) järgnes palju kiiremini kui eelmine uuendus, kui Mellanox 2006. aastal avaldas oma ConnectX arhitektuuril põhineva adapteri, mis võimaldas 40 Gb/s InfiniBand ühendust ja 10 Gb/s Ethernet ühendust, kuid maksimaalne kaablipikkus vähened 7 m peale. QDR spetsifikatsiooni järgivad tooted jõudsid turule 2008. 2006. aasta juunis kasutas IB tehnoloogiat 40 Superarvutit TOP 500 kõige võimsama arvuti hulgas, mis kasvas novembriks 82 peale ja 2007 juuniks 132 peale. 

InfiniBand FDR (*Fourteen Data Rate* – neljateistkordne andmeedastuskiirus) avaldati 2011. aastal ning Mellanox esitles oma SwitchX ja ConnectX-3 tehnoloogiaid, mis olid vastavalt esimene 56 Gb/s IB ja 10/40 Gb Ethernet mitme protokolliga lüliti (*switch*) ja samu kiiruseid võimaldav adapter. 2012. aastal tuli Mellanox välja MetroX seeria toodetega, mis võimaldasid riistvaraliselt IB ja RDMA (*Remote Direct Memory Access* – kaug-otsemällupöördumise) kuni 80 km pikkuste kaablitega. 

InfiniBand EDR (*Enhanced Data Rate* – täiustatud andmeedastuskiirus) avaldati 2014 ja Mellanox avaldas samal aastal oma ConnectX-4 adapteri, millega nad on saavutanud pistikutevahelise latentsuse alla 90ns ja mis võimaldab 100 Gb/s IB ühendusi. 2016. aastal asendus see ConnectX-5 adapteriga, mis võimaldas lisaks 100Gb/s IB ühendusele veel 10, 25, 40, 50 ja 100GB/s IB ja Ethernet ühendusi.

InfiniBand HDR (*High Data Rate* – suur andmeedastuskiirus) avaldati 2017. aastal ning jõudis turule 2018 Mellanoxi ConnectX-5 HDR 200Gb/s lahendus. 2019. aastal kuulutati välja Quantum LongReach Appliances, mis pikendab IB EDR ja HDR ühenduskaugusi vastavalt kuni 10 km ja 40 km peale.

Kaubandusühingut juhib juhtkomitee, kuhu kuuluvad Broadcom, Cray Inc. (Hewlett-Packardi tütarettevõte), Hewlett-Packard, IBM, Intel, Mellanox Technologies (Nvidia tütarettevõte), Microsoft, Oracle ja QLogic. Ülejäänud IBTA liikmed on samuti IT-sektoris juhtivad ettevõtted, kes panustavad InfiniBandi spetsifikatsiooni arendamisse.

Vaata ka
--------

* Ethernet
* Kiire Ethernet
* Kohtvõrk
* Valguskaabel

Viited
------

1. ↑  InfiniBand® Trade Association (2010). "Intro to IB for End Users" (PDF). Vaadatud 10.05.2020.
2. ↑  Mellanox Technology. "InfiniBand Roadmap". Vaadatud 10.05.2020.
3. ↑   // Mellanox
4. 1 2  Panda, Dhabaleswar K.; Sayantan Sur (2011). "Network Speed Acceleration with IB and HSE" (PDF). *Designing Cloud and Grid Computing Systems with InfiniBand and High-Speed Ethernet*. Newport Beach, CA, USA: CCGrid. Vaadatud 09.05.2020.
5. ↑  Mellanox Technologies. "Introduction to InfiniBand™" (PDF). Vaadatud 10.05.2020.
6. ↑  Scott Kipp, Alex Ngi. "Quad Small Form-factor Pluggable (QSFP) Transceiver Specification". Vaadatud 10.05.2020.
7. ↑  SFF Committee. "QSFP+ 4X 10 Gb/s Pluggable Transceiver". Vaadatud 10.05.2020.
8. ↑  SFF Committee. "QSFP+ 14 Gb/s 4X Pluggable Transceiver Solution (QSFP14)". Vaadatud 10.05.2020.
9. ↑  Arista (1. mai 2019). "Arista 100G Transceivers and Cables: Q&A" (PDF). Vaadatud 10.05.2020.
10. ↑  SFF TA TWG (8.01.2020). "SFF Module Management Reference Code Tables". Vaadatud 10.05.2020.
11. ↑  Ted H. Kim (14. juuli 2004). "Brief History of InfiniBand: Hype to Pragmatism". *Oracle*. Originaali arhiivikoopia seisuga 8. august 2014. Vaadatud 09.05.2020.
12. ↑  Mellanox technologies (aprill 2020). "Timeline". Vaadatud 10.05.2020.