# InfiniBand

InfiniBand és una xarxa d'àrea del sistema (System Area Network, SAN) per connectar ordinadors i dispositius d'E/S. Un sistema InfiniBand pot variar des d'un petit servidor format per un processador i uns quants dispositius d'E/S connectats, fins a un supercomputador massivament paral·lel amb milers de processadors i dispositius d'E/S què estan connectat via Internet a altres plataformes de processament i / o sistemes d'E/S.
Les dues principals fites que es planteja InfiniBand són: solventar les limitacions que presenten els actuals busos PCI (per exemple, colls d'ampolla, fiabilitat, escalabilitat, etc.), i estandarditzar les emergents tecnologies propietàries en el terreny dels clústers (per exemple, Servernet, Myricom, Giganet, etc.).

## Rendiment

| | | SDR (Single Data Rate) | DDR (Double Data Rate) | QDR (Quad Data Rate) | FDR10 (Fourteen Data Rate) | FDR (Fourteen Data Rate) | EDR (Enhanced Data Rate) | HDR (High Data Rate) | NDR (Next Data Rate) | XDR (Extended Data Rate) |
| Signaling rate (Gbits/s) | | 2,5 | 5 | 10 | 10,3125 | 14,0625 | 25,78125 | 50 | 100 | 250 |
| Amplada de banda teòrica (Gbit/s) | 1x enllaços | 2 | 4 | 8 | 10 | 13,64 | 25 | 50 | 100 | 250 |
| Amplada de banda teòrica (Gbit/s) | 4x enllaços | 8 | 16 | 32 | 40 | 54,54 | 100 | 200 | 400 | 1000 |
| Amplada de banda teòrica (Gbit/s) | 8x enllaços | 16 | 32 | 64 | 80 | 109,08 | 200 | 400 | 800 | 2000 |
| Amplada de banda teòrica (Gbit/s) | 12x enllaços | 24 | 48 | 96 | 120 | 163,64 | 300 | 600 | 1200 | 3000 |
| Codificació (bits) | | 8/10 | 8/10 | 8/10 | 64/66 | 64/66 | 64/66 | 64/66 | Desconegut | Desconegut |
| Latencia del adaptador (microsegons) | | 5 | 2,5 | 1,3 | 0,7 | 0,7 | 0,5 | Desconegut | Desconegut | Desconegut |
| Any | | 2001, 2003 | 2005 | 2007 | 2011 | 2011 | 2014 | 2017 | Previst per a dresprés del 2020 | Previst per a després del 2023 |
La majoria de sistemes utilitzen 4x enllaços, 8x i 12x solen ser utilitzats per les interconexions de clusters i supercomputadors.

## Característiques
### Missatges

InfiniBand transmet les dades en paquets de 4 KB que són agrupats per a formar un missatge. Els tipus de missatge són:
* Lectura o escriptura d'accés directe a memòria remot
* Canal d'emissió i recepció
* Operació basada en una transacció que pot ser invertida
* Transmissió de difusió selectiva
* Operació atómica

### Parells de cues

Els parells de cues (QP) són l'interfície virtual que el hardware proporciona a un generador d'informació a InfiniBand i el port de comunicació virtual que proporciona per al receptor d'aquesta informació. D'aquesta manera, la comunicació té lloc entre un QP font i un QP destí.

### Tipus de serveis

Cada QP es configura per a proporcionar un determinat servei. Hi ha tres característiques que identifiquen cada tipus de servei:
* Servei orientat a connexió i servei no orientat a la connexió (datagrama): En un tipus de servei orientat a connexió cada QP font està associat amb un únic QP destí i viceversa. En un tipus de servei no orientat a connexió està permès que un QP envie o rebi paquets des de qualsevol altre QP.
* Servei amb confirmació i servei sense confirmació: En un servei amb confirmació, quan un QP rep un paquet ha de confirmar al QP origen que l'ha rebut correctament. Aquests missatges de confirmació poden anar integrats en un altre paquet amb informació, o en un missatge ACK o NAK propi. El servei sense confirmació es diu que no és fiable, ja que el protocol de transport no assegura que la informació arribi a destí.
* Servei de transport d'InfiniBand i altres tipus de serveis de transport: El servei de transport d'InfiniBand permet la transmissió de paquets encapsulant paquets d'altres protocols de transport.

### Claus

Les claus proporcionen un nivell d'aïllament i protecció en front al tràfic. Aquestes claus s'insereixen als paquets i només podran accedir a aquests paquets les aplicacions que tinguin les claus corresponents. Els diferents tipus de claus són:
Clau d'Administració (Managment Key): Aquesta clau s'utilitza per a gestionar el tràfic d'un port. Un cop assignada una clau a un port, tot el tràfic de control amb aquest port haurà de portar aquesta clau inserida als paquets.
Clau de Partició (Partition Key): Permet la divisió lògica de la subxarxa en zones diferents. Cada adaptador conté una taula de claus que defineix les particions per a les que està habilitat.
Clau de Cola (Queue Key): Permet el control del dret d'accés a les coles per als serveis no orientats a la connexió. D'aquesta manera dos nodes que no hagin establert prèviament una connexió poden intercanviar informació, ja que aquesta clau identifica als dos interlocutors.
Claus de Memòria (Local Key i Remote Key): Permet l'ús d'adreces de memòria virtuals i dota al consumidor d'un mecanisme per a controlar l'accés a aquesta memòria. El consumidor especifica a l'adaptador una zona de memòria i rep d'aquest una Clau Local i una Clau Remota. La Clau Local s'utilitza per a les gestions locals de la memòria, i comparteix la Clau Remota amb els consumidors remots perquè l'utilitzen amb les operacions remotes de DMA (RDMA).

### Canals virtuals

Els canals virtuals (VL) constitueixen un mecanisme per a crear múltiples enllaços virtuals en un únic enllaç físic. Un canal virtual representa un conjunt de buffers de transmissió i recepció en un sol port.

### Multicast

Multicast és un paradigma de comunicació dissenyat per a simplificar i millorar la comunicació entre un conjunt de nodes finals. InfiniBand permet aquest paradigma de comunicació multidestí.

## Arquitectura

InfiniBand defineix una interconnexió commutada que permet a molts dispositius intercanviar dades de forma simultània, amb gran amplada de banda i baixa latència. Com que és un sistema commutat, es poden aconseguir característiques com protecció, fiabilitat, escalabilitat, seguretat, etc., fins ara impensables en sistemes d'E/S.
Un node en una xarxa InfiniBand pot comunicar-se per mitjà de múltiples ports del commutador al qual està connectat. Gràcies a aquests diferents ports pot habilitar camins alternatius tant per incrementar l'ample de banda com per permetre tolerància a fallades.
El sistema d'administració serà capaç d'identificar qualsevol topologia formada, i construir les taules d'encaminament adequades per permetre l'intercanvi d'informació entre dos elements qualsevol connectats a través de la xarxa.

### Components de Infiniband

Una subxarxa InfiniBand pot estar composta per nodes finals, commutadors, encaminadors i el Subnet Manager, tots ells interconnectats per enllaços. Aquests enllaços poden ser de cable, de fibra òptica o gravats a la placa base.

#### Enllaços i repetidors

Els enllaços interconnecten channels adapters, switches, routers i repetidors formant una estructura. Els enllaços són cables de coure, de fibra òptica o impresos en circuits. Els repetidors són dispositius transparents que estenen l'abast dels enllaços. Només participen en els protocols de la capa física i els nodes no detecten la seva presència.

#### Channel adapters

Un channel adapter és el component en un node final que el connecta a la xarxa. Un channel adapter és un dispositiu DMA programable amb característiques especials que permet que les operacions d'accés a memòria siguin iniciadas de manera local o remota. Cada channel adapter té un o diversos ports. Cada port del channel adapter té la seva pròpia direcció local configurada pel Subnet Manager. Cada port té el seu propi conjunt de buffers d'enviament i recepció, i és capaç d'estar enviant i rebent informació al mateix temps.

#### Commutadors

Els commutadors disposen d'una sèrie de ports on es connecten els enllaços. Amb caràcter general, els commutadors són completament transparents per als nodes finals. Els commutadors simplement transmeten paquets des d'un port d'entrada cap a un port de sortida, d'acord amb la direcció destí que el paquet porta en la seva capçalera.
Els commutadors tenen unes taules d'encaminament per decidir per quin port treure cada paquet. Aquestes taules es carreguen en el moment de l'arrencada, o després d'un canvi en la topologia, pel Subnet Manager.

#### Encaminadors

Un encaminador s'encarrega de comunicar diferents subxarxes. En aquest cas la decisió que port de sortida es pren segons una adreça global (GID). Aquesta adreça global és única en totes les xarxes InfiniBand, mentre que la direcció local (LID) és pròpia de cada subxarxa
Els encaminadors no són completament transparents per als nodes finals, ja que el node font d'especificar la direcció local (LID) de l'encaminador de sortida a l'exterior de la seva subxarxa, a més d'indicar la direcció global (GID) del node destí.

## Història

Infiniband va sorgir com a resultat de la unió de dos dissenys competidors, Future I/O, dissenyat per les empreses Compaq, IBM i Hewlett-Packard, i Next Generation I/O dissenyat per Intel, Microsoft i Sun Microsystems. Aquesta unió va sorgir atès que les empreses tant per part de Future I/O com per Next Generation I/O van veure que no hi havia prou mercat per aquests dos dissenys. Des que es va crear aquesta tecnologia fins al 1999 va rebre el nom de System I/O, després va acabar rebent el nom que coneixem en l'actualitat, Infiniband.
L'Octubre de l'any 2000 es va publicar la primera versió, 1.0, de les especificacions d'Infiniband.

### Eix cronològic

* 2001: Mellanox envia dispositius InfiniBridge 10 Gbit/s i envia més de 10.000 ports Infiniband.
* 2002: L'avanç d'Infiniband es reverteix quan Intel anuncia que en comptes d'enviar xips d'Infiniband se centrarà en el desenvolupament del PCI Express. Microsoft deixa també de costat a Infiniband amb l'ampliació d'Ethernet. Tot i això Sun i Hitachi segueixen amb el suport a Infiniband.
* 2003: Virginia Tech construeix un clúster classificat com el número tres en el Top500 de supercomputadors en aquell moment.
* 2004: Infiniband comença a veure l'adopció com la interconnexió d'un clúster, superant a Ethernet en latències i preus. OpenFabrics Alliance desenvolupa un software Infiniband basat en Linux.
* 2005: Infiniband comença a implementar-se com una interconnexió per a dispositius d'emmagatzematge.
* 2009: Referent al Top500 de supercomputadors Gigabit Ethernet és la tecnologia interna d'interconnexió predominant en 259 d'ells a diferència d'Infiniband amb 181. SGI, Dell, Hewlett-Packard i IBM escullen els adaptadors QDR (Quad Data Rate) d'Infiniband.
* 2010: Els líders del mercat Mellanox i Voltaire es fusionen deixant només un altre proveïdor d'Infiniband, QLogic, principalment un venedor de canal de fibra. La Corporació Oracle fa una inversió important a Mellanox.
* 2011: Commutadors i adaptadors FDR anunciats a la Conferència International de Supercomputació.
* 2012: Intel adquireix la tecnologia Infiniband de Qlogic’s.
* 2016: Oracle manufactura les seves pròpies unitats de xips i commutadors d'interconnexió Infiniband.
* 2019: Nvidia adquirex Mellanox per 6.900 milions de dòlars.

### Actualitat

Avui en dia Infiniband es fa servir en la seva major part per a clústers d'alt rendiment, encara que s'han fet esforços per adaptar l'estàndard a connexions entre màquines de baix cost per a aplicacions comercials i tècniques més habituals. Infiniband és utilitzat per unss quants centres de supercomputació del TOP500.
Tot i que no ha esdevingut en la tecnologia de xarxa multiús, està tenint més èxit que d'altres solucions de connexió entre computadors com, Quadrics (QsNet) i Myricom (Myrinet). Actualment en el camp dels supercomputadors, Infiniband té un gran competidor que és Gigabit Ethernet. Quan Gigabit Ethernet evolucioni a 10-Gigabit Ethernet, Infiniband haurà d'enfrontar-se a una competència molt més forta, però l'avantatge principal d'Infiniband és la seva arquitectura més que la seva velocitat. Altres competidors amb Infiniband són les diverses TCP i Ethernet millorades com, TCP Offload Engine, y RDMA Ethernet.

## Infiniband vs Ethernet

Quan es parla de pros i contras d'Infiniband en vers a la connexió més coneguda, Ethernet, es tenen en compte diversos aspectes, entre ells els mes importants venen a ser el preu, la velocitat, la latència, etc.
En l'àmbit del preu, les noves connexions d'Infiniband son més cares degut a ser la més recent, no estar tan explorat ni tan optimitzat com l'Ethernet. Tot i això, els switches més antics d'Infiniband aporten bons resultats de latència i connectivitat sense ser massa cars.
A diferencia de l'usatge d'Ethernet, Infiniband permet lligar els processos i la memòria de diversos servidors conjuntament, aconseguint així que les velocitats de comunicació siguin tan ràpides com si els processos es trobessin al mateix PCB.
En el moment, podem trobar quatre tipus de targetes de xarxa basades en Ethernet en el món de la computació d'alt rendiment: 100Gbps, 40Gbps, 10Gbps i 1Gbps, encara que en l'actualitat s'està desenvolupant una de 400Gbps. La versió actual d'Infiniband es basa en FDR (Fourteen DataRate) la qual permet transferir des de 14Gbps fins a 56Gbps per canal. L'FDR, la base d'Infiniband està sent millorada per tal d'implementar l'EDR (enhanced data rate) la qual permetrà transmetre fins a 100Gbps.
Tot i això, la principal avantatge d'Infiniband en front Ethernet és la topologia que aquesta primera ofereix, que en ser més plana dona una menor potencia de càlcul de la CPU i obtenim una latència més baixa; Ethernet, per la seva banda, ofereix una major connectivitat de cara al mercat per a les connexions de xarxes.

## Vegeu també

* Ethernet
* Supercomputador
* Omni-Path

## Referències

* ↑ «"Timeline"» (en anglès). Mellanox Technologies. [Consulta: 28 maig 2019].
* ↑ «Sun confirms commitment to InfiniBand» (en anglès). The Register, 30-12-2002. [Consulta: 28 maig 2019].
* ↑ Kerner, Sean Michael. «Linux Kernel 2.6.11 Supports InfiniBand - InternetNews» (en anglès). Internet News, 24-02-2005. [Consulta: 28 maig 2019].
* ↑ Silverthorn, Ann. «Is InfiniBand poised for a comeback?» (en anglès). INFOSTOR, 01-02-2006. [Consulta: 28 maig 2019].
* ↑ Lawson, Stephen. «Two rival supercomputers duke it out for top spot» (en anglès). COMPUTERWORLD, 16-11-2009. Arxivat de l'original el 10 de gener 2017. [Consulta: 28 maig 2019].
* ↑ Connor, Deni. «HP, IBM, Dell, SGI to resell, OEM Qlogic Infiniband products» (en anglès). NETWORKWORLD, 17-11-2009. [Consulta: 28 maig 2019].
* ↑ Raffo, Dave. «Largest InfiniBand vendors merge; eye converged networks» (en anglès). IT Knowledge Exchange, 29-11-2010. Arxivat de l'original el 28 de maig 2019. [Consulta: 28 maig 2019].
* ↑ Ricknäs, Mikael. «Mellanox Demos Souped-Up Version of Infiniband» (en anglès). CIO, 20-06-2011. Arxivat de l'original el 2019-05-28. [Consulta: 28 maig 2019].
* ↑ Feldman, Michael. «Intel Snaps Up InfiniBand Technology, Product Line from QLogic» (en anglès). HPC Wire, 23-01-2012. [Consulta: 28 maig 2019].
* ↑ Morgan, Timothy Prickett. «Oracle Engineers Its Own InfiniBand Interconnects» (en anglès). NEXTPLATFORM, 22-02-2016. [Consulta: 28 maig 2019].
* ↑ «NVIDIA acquire Mellanox for $6.9 Billion» (en anglès). Nvidia, 11-03-2019. [Consulta: 28 maig 2019].

## Enllaços externs

* Pàgina web de la IBTA