IT201600071637A1 - Sistema per accelerare la trasmissione dati nelle interconnessioni di rete - Google Patents

Sistema per accelerare la trasmissione dati nelle interconnessioni di rete

Info

Publication number
IT201600071637A1
IT201600071637A1 IT102016000071637A IT201600071637A IT201600071637A1 IT 201600071637 A1 IT201600071637 A1 IT 201600071637A1 IT 102016000071637 A IT102016000071637 A IT 102016000071637A IT 201600071637 A IT201600071637 A IT 201600071637A IT 201600071637 A1 IT201600071637 A1 IT 201600071637A1
Authority
IT
Italy
Prior art keywords
data
node
receiving
network card
source node
Prior art date
Application number
IT102016000071637A
Other languages
English (en)
Inventor
Roberto Ammendola
Piero Vicini
Pier Stanislao Paolucci
Alessandro Lonardo
Ottorino Frezza
Cicero Francesca Lo
Michele Martinelli
Andrea Biagioni
Francesco Simula
Original Assignee
Istituto Naz Fisica Nucleare
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Istituto Naz Fisica Nucleare filed Critical Istituto Naz Fisica Nucleare
Priority to IT102016000071637A priority Critical patent/IT201600071637A1/it
Priority to PCT/IB2017/054100 priority patent/WO2018007988A1/en
Publication of IT201600071637A1 publication Critical patent/IT201600071637A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission

Description

“SISTEMA PER ACCELERARE LA TRASMISSIONE DATI NELLE INTERCONNESSIONI DI RETE”
DESCRIZIONE
La presente invenzione è relativa ad un sistema e relativo metodo di trasmissione dati in una rete di interconnessione. In particolare, la presente invenzione è relativa ad un sistema e relativo metodo di trasmissione dati in una rete di interconnessione tra nodi di calcolo. In dettaglio, la presente invenzione è relativa ad un sistema e relativo metodo di trasmissione dati in una rete di interconnessione tra nodi di calcolo, la presente invenzione essendo finalizzata ad accelerare le operazioni di trasmissione e/o trasferimento dati.
Stato dell’arte.
Sono noti nello stato dell’arte sistemi e metodi di trasmissione dati.
Ad esempio, sono noti sistemi di trasmissione dati che comprendono una scheda di rete di tipo ethernet, o più genericamente afferente alla famiglia di protocolli di rete IEEE 802, tipicamente presente in qualsiasi tipo di computer. Tramite tali reti ethernet è possibile effettuare il broadcast (ovvero l’invio di un pacchetto di dati verso tutti i dispositivi o calcolatori collegati attraverso una stessa rete) od il multicast (ovvero l’invio di un pacchetto di dati verso alcuni dei dispositivi o calcolatori collegati attraverso una stessa rete).
Tuttavia, i sistemi che utilizzano le schede ethernet non sono vantaggiosamente impiegabili nel contesto del calcolo ad alte prestazioni per motivi puramente tecnici. Infatti, nei sistemi che utilizzano le schede ethernet si renderebbe necessario il cambiamento dei parametri di configurazione di rete (indirizzo IP, netmask, ...) in maniera continuata e variabile durante l'esecuzione dell'applicazione di calcolo ad alte prestazioni che si vuole accelerare; il protocollo di rete implementato nelle comuni reti LAN prevede infatti degli speciali indirizzi, che garantiscono il broadcast su sottoreti selezionabili; per definire dei domini di multicast o broadcast si dovrebbero modificare i parametri di rete dei nodi afferenti alla rete durante l'esecuzione dell'applicazione; ciò da un punto di vista pratico non è facilmente realizzabile, se non espressamente vietato all'utente di un calcolatore; i protocolli e le periferiche di tipo LAN hanno infine delle caratteristiche di latenza intrinseche che li rendono poco adatti alla costituzione di reti per il calcolo ad alte prestazioni.
Sono noti anche altri sistemi di trasmissione dati che comprendono una scheda di rete del tipo Infiniband, descritti ad esempio nei brevetti n. US 9110860 ed US 8811417 a nome Mellanox: tali sistemi di trasmissione dati sono in grado di realizzare un'accelerazione di alcuni tipi di operazioni collettive, quali le operazioni di broadcast, in cui un buffer di dati viene trasferito da un nodo sorgente a tutti gli altri nodi, l’operazione detta di “barrier”, operazione di sincronizzazione che viene eseguita tecnicamente come un broadcast con l'invio di un pacchetto nullo o di dimensione minima e l’operazione detta di “riduzione”, in cui tutti i nodi comunicano un insieme di dati ad un unico nodo ricevente, il quale provvede ad effettuare su di essi un'operazione aritmetica, tipo somma, moltiplicazione, etc. globale. Tali operazioni sono eseguite principalmente sullo switch (commutatore di rete) e sono rivolte in larga parte all'ottimizzazione di operazioni di riduzione, ovvero quelle in cui un nodo raccoglie tutti i dati dei nodi afferenti all'operazione e vi esegue un'operazione aritmetica globale (ad esempio una somma). In tali sistemi di trasmissione dati, l'accelerazione riguarda l'instradamento da dare ai pacchetti che appartengono a comunicazioni del tipo collettivo succitato, ovvero la scelta di un percorso ottimizzato da dare a ciascun singolo pacchetto che deve raggiungere la destinazione, nonché la capacità data allo switch di effettuare parte dei calcoli dell'operazione aritmetica richiesta sui dati che transitano.
Inoltre, sono noti altri sistemi di trasmissione dati, per esempio applicati alle reti dei supercalcolatori non commerciali del tipo IBM Bluegene, come descritti nel brevetto n. US 8001280, in cui le operazioni di riduzione collettive e di broadcast vengono ottimizzate grazie all'uso di una rete dedicata con topologia ad albero. Le ottimizzazioni di questo tipo si basano sulla presenza di una rete secondaria specializzata e non risultano essere efficaci nel caso di multicast generalizzato.
Infine, ad esempio nel caso semplificato e generale di broadcast in un sistema con 1 nodo sorgente e 3 nodi riceventi A,B,C, il tipico flusso di operazioni comprende le seguenti fasi, in ordine:
- il nodo sorgente prepara il pacchetto di dati da trasmettere;
- il driver notifica alla scheda di rete le informazioni (nello specifico: la quantità dei dati da trasferire, l'indirizzo della memoria dove si trovano i dati, l'indirizzo del nodo ricevente, indirizzo di memoria del nodo ricevente) per trasmettere tale pacchetto di dati al nodo ricevente A;
- la scheda di rete legge i dati e li trasmette al nodo ricevente A;
- il driver aspetta la comunicazione di avvenuta trasmissione al nodo ricevente A dalla propria scheda di rete;
- il driver notifica alla scheda di rete le stesse informazioni indicate sopra aggiornate per il nodo ricevente per trasmettere i dati al nodo ricevente B;
- la scheda di rete legge i dati e li trasmette al nodo ricevente B;
- il driver aspetta la comunicazione di avvenuta trasmissione al nodo ricevente B dalla propria scheda di rete;
- il driver notifica alla scheda di rete le stesse informazioni indicate sopra aggiornate per il nodo ricevente per trasmettere i dati al nodo ricevente C;
- la scheda di rete legge i dati e li trasmette al nodo ricevente C;
- il driver aspetta la comunicazione di avvenuta trasmissione al nodo ricevente C dalla propria scheda di rete.
Pertanto, in tali sistemi di trasmissione dati secondo l’arte nota in cui sono presenti più nodi riceventi, è possibile trasmettere i dati ad ogni singolo nodo ricevente solo dopo che il driver ha ricevuto la comunicazione dell’avvenuta trasmissione dati al nodo precedente. Tale periodo di attesa tra l’invio di un blocco di dati ad un nodo e l’invio successivo dello stesso blocco di dati al nodo seguente, ripetuto per il numero di nodi riceventi presenti nel sistema, comporta un considerevole dispendio e spreco di tempo per la trasmissione dello stesso blocco di dati ad ogni nodo ricevente della rete.
Scopo della presente invenzione è quindi quello di superare od almeno minimizzare gli inconvenienti riscontrati nei sistemi e metodi di trasmissione dati secondo l’arte nota e riassunti brevemente in precedenza.
Di conseguenza, in questo contesto, la presente invenzione è concepita per far fronte all’esigenza di trovare un sistema di trasmissione dati alternativo che sia in grado di minimizzare od almeno ridurre i tempi di trasmissione, in particolare accelerando la trasmissione dati in modo che tutti i nodi riceventi presenti nel sistema ricevano i relativi dati in tempi accettabili.
Sommario dell’invenzione.
In generale, la presente invenzione è relativa ad un sistema di trasmissione dati attraverso una rete di interconnessione tra nodi secondo la rivendicazione 1.
La presente invenzione scaturisce infatti dalla considerazione generale secondo la quale il problema tecnico sopra evidenziato può essere risolto in modo efficace e affidabile mediante un sistema e relativo metodo di trasmissione dati attraverso una rete di interconnessione tra almeno un nodo sorgente ed una pluralità di nodi riceventi distinti, in cui a detto nodo sorgente è associata una scheda di rete e ad ognuno di detta pluralità di nodi riceventi distinti è associata rispettivamente una propria scheda di rete. Tale sistema di trasmissione dati è caratterizzato dal fatto che detto nodo sorgente è configurato in modo da frazionare l’insieme di dati di partenza in una pluralità di X frazioni distinte di dati e di comunicare a detta scheda di rete ad esso associata le informazioni relative all’indirizzo di partenza e quale/i tra le frazioni distinte di dati deve/ono essere trasmesse ad ogni specifico nodo ricevente.
Pertanto, secondo la presente invenzione, in questo modo è possibile aumentare la velocità delle trasmissioni di dati attraverso una rete di interconnessione tra nodi, trasmettendo parti differenti di uno stesso pacchetto di dati disponibili nel nodo sorgente a nodi riceventi differenti in modo che ad ogni nodo ricevente vengano trasmessi tali dati in modo indipendente dagli altri nodi.
Secondo una forma di realizzazione, detta scheda di rete associata a detto nodo sorgente è configurata in modo da frazionare detta porzione di dati da trasferire ad ogni nodo ricevente in pacchetti di rete secondo un protocollo di comunicazione predefinito.
In questo modo, grazie alle schede di rete utilizzate nella presente invenzione, è possibile trasmettere ai nodi riceventi di volta in volta soltanto una porzione desiderata di tali dati disponibili nel nodo sorgente.
Secondo una forma di realizzazione, ad ogni nodo ricevente distinto viene trasmessa almeno una frazione di dati differente/i dalla almeno una frazione di dati trasmessa ad ogni altro nodo ricevente.
In questo modo, il buffer di dati viene distribuito in parti di dimensioni anche diverse tra i nodi riceventi.
Secondo una forma di realizzazione, almeno una stessa frazione di dati viene trasmessa ad almeno due differenti nodi riceventi.
In questo modo, il buffer di dati viene trasmesso distribuendo anche parti identiche tra i nodi riceventi.
Secondo una forma di realizzazione, ad ogni nodo ricevente distinto viene trasmessa la totalità di dette frazioni distinte di dati.
In questo modo, il buffer di dati viene trasmesso interamente ai nodi riceventi. Secondo una forma di realizzazione, detta scheda di rete associata a detto nodo sorgente è configurata in modo da contenere al suo interno una porzione di memoria, come ad esempio un buffer, in cui immagazzinare temporaneamente tali frazioni di dati da trasferire ad ogni nodo ricevente.
Secondo una forma di realizzazione, detta scheda di rete associata a detto nodo sorgente è configurata in modo da trasmettere una prima frazione di dati di dette frazioni di dati ad un primo nodo ricevente, tramite detta scheda di rete associata a detto primo nodo ricevente, e configurata inoltre in modo da trasmettere in sequenza altre frazioni di dati ad una sequenza di altri nodi riceventi, differenti tra loro e differenti da tale primo nodo ricevente, tramite dette schede di rete rispettivamente associate a detti altri nodi riceventi, senza dover aspettare il completamento della trasmissione di dati al/ai nodo/i ricevente/i attivato/i precedentemente.
In questo modo, contrariamente a quanto succedeva nei sistemi di trasmissione noti nell’arte in cui era necessario aspettare che un intero pacchetto di dati fosse trasmesso dal nodo sorgente ad un primo nodo ricevente prima di eseguire un’analoga trasmissione dello stesso pacchetto di dati dallo stesso nodo sorgente ad un secondo nodo ricevente, il sistema di trasmissione dati della presente invenzione permette di attivare in successione la trasmissione ad ognuno dei nodi riceventi di una di tali frazioni di dati. Si ottiene quindi il risultato che tutti i nodi riceventi possano ricevere una frazione di dati senza aspettare il completamento delle trasmissioni di dati inviate precedentemente ad altri nodi riceventi.
Secondo una forma di realizzazione, la scheda di rete associata al nodo sorgente è configurata in modo da comprendere un dispositivo, posizionato in tale stessa scheda di rete, in grado di memorizzare informazioni relative al tipo di frazione di dati che è stata trasmessa ad un particolare nodo ricevente e l’indirizzo corrispondente di tale nodo ricevente.
In questo modo, il sistema di trasmissione dati della presente invenzione permette alla scheda associata al nodo sorgente di memorizzare progressivamente le informazioni relative alle varie frazioni di dati che sono state trasmesse a determinati nodi riceventi, per ognuno dei nodi riceventi. Inoltre, essendo la scheda di rete associata al nodo sorgente configurata in modo da memorizzare l’indirizzo dei nodi riceventi, ogni qualvolta si deve eseguire una nuova trasmissione di frazioni di dati ad un particolare nodo ricevente per il quale è stato memorizzato l’indirizzo, non è necessario creare nuovamente tale indirizzo, essendo già disponibile, con una conseguente accelerazione dei tempi necessari per la trasmissione dei dati a quel particolare nodo ricevente.
Secondo una forma di realizzazione, la scheda di rete associata al nodo sorgente è configurata in modo da verificare, ogni qualvolta sia stata completata la trasmissione di una frazione di dati ad un particolare nodo ricevente, per ogni nodo ricevente, se tale nodo ricevente abbia ricevuto o meno tutte le frazioni di dati che dovevano essere a lui trasmesse.
Di conseguenza, nel caso un particolare nodo ricevente non abbia ancora ricevuto tutte le frazioni di dati a lui destinate, il sistema di trasmissione dati della presente invenzione permette alla scheda associata al nodo sorgente di attivare una nuova trasmissione di frazione di dati a quel particolare nodo ricevente, differente dalla frazione di dati già a lui trasmessa. Nel caso opposto, si considera completata la trasmissione di dati a quel particolare nodo ricevente. Tale verifica viene applicata a tutti i nodi riceventi.
Secondo una forma di realizzazione, la scheda di rete associata al nodo sorgente è configurata in modo che, una volta completata la trasmissione di una frazione di dati ad un nodo ricevente, tale frazione di dati viene trasmessa ad un altro nodo ricevente a cui non sia ancora stata trasmessa tale frazione di dati, non appena sia stata completata una precedente trasmissione di frazione di dati a tale altro nodo ricevente.
In questo modo, grazie all’utilizzo delle frazioni di dati memorizzate nella parte di memoria della scheda di rete associata al nodo sorgente ed alle schede di rete associate ai corrispondenti nodi riceventi che comunicano con tale scheda di rete associata al nodo sorgente tramite la rete di interconnessione, si ottiene una diminuzione del carico di lavoro per il nodo sorgente quando si deve eseguire tale operazione di trasferimento dati. Infatti, potendo gestire il trasferimento di tali frazioni di dati direttamente tramite la scheda di rete associata al nodo sorgente, ogni operazione di trasferimento dati viene eseguita in maniera dinamica.
Secondo una forma di realizzazione, detta scheda di rete associata a detto nodo sorgente è uguale ad ognuna di dette schede di rete associate rispettivamente ad ognuno di detti nodi riceventi.
In questo modo, essendo tutti i nodi uguali, ogni nodo può essere utilizzato sia come sorgente che come destinatario; pertanto, nel contesto del calcolo scientifico ad alte prestazioni, il concetto di nodo sorgente e di nodo destinatario risulta essere dinamico ed intercambiabile durante l’esecuzione dell’applicazione.
Secondo una forma di realizzazione, detto nodo sorgente è costituito da un computer od un elemento computazionale più elementare o l'aggregazione di più elementi computazionali; ad esempio, tale nodo sorgente può essere costituito da un processore (CPU) e da una memoria (RAM).
Secondo una forma di realizzazione, ognuno dei detti nodi riceventi è costituito allo stesso modo da un computer od un elemento computazionale più elementare o l'aggregazione di più elementi computazionali; ad esempio, tale nodo ricevente può essere costituito da un processore (CPU) e da una memoria (RAM).
In questo modo, detta rete di interconnessione della presente invenzione tra detto almeno un nodo sorgente e detta pluralità di nodi riceventi distinti è una rete tra elementi computazionali, che possono anche essere eterogenei (differenti tipi e numerosità di CPU).
Secondo una forma di realizzazione, detta scheda di rete associata a detto nodo sorgente è inoltre configurata in modo da frammentare il pacchetto di dati da trasferire o trasmettere in una pluralità di frazioni o sotto-pacchetti, nonché di specificare il nodo ricevente o destinatario di ogni frazione e/o sotto-pacchetto.
In questo modo, l'operazione di frammentazione del pacchetto di dati da trasmettere dal nodo sorgente ai nodi riceventi viene realizzata dall'hardware presente nella scheda di rete.
Secondo una forma di realizzazione, detta rete di interconnessione è priva di un'entità esterna di tipo commutatore (“switch”). Essendo la scheda di rete dotata di una molteplicità di canali di comunicazione, ha essa stessa al suo interno la capacità di commutare il traffico dei dati proveniente dalla rete; la rete che ne deriva è costituita da connessioni punto-punto tra i nodi di calcolo a topologia arbitraria, che possono essere contemporaneamente nodi sorgenti e riceventi.
In questo modo, non essendo necessaria la presenza di tale entità esterna nella rete di interconnessione, si ottiene un risparmio sul numero di componenti del sistema di trasmissione dati.
La presente invenzione ha inoltre per oggetto un metodo per trasmettere dati come quello indicato nella rivendicazione 10, vale a dire un metodo per trasmettere dati in una rete di interconnessione tra almeno un nodo sorgente ed una pluralità di nodi riceventi, in cui a detto nodo sorgente è associata una scheda di rete e ad ognuno di detta pluralità di nodi riceventi distinti è associata rispettivamente una propria scheda di rete, laddove secondo il metodo, mediante detta scheda di rete associata a detto nodo sorgente l’insieme di dati di partenza da trasmettere ad ognuno di detta pluralità di nodi riceventi distinti viene frazionato in una pluralità di frazioni di dati distinte ed a detta scheda di rete associata a detto nodo sorgente vengono trasmesse le informazioni relative all’indirizzo di partenza e quale/i tra le frazioni distinte di dati deve/ono essere trasmesse ad ogni specifico nodo ricevente.
In questo modo viene aumentata la velocità delle operazioni in una rete di interconnessione tra nodi, in particolare trasmettendo parti differenti di uno stesso pacchetto di dati disponibili nel nodo sorgente a nodi riceventi differenti.
Preferibilmente, detto metodo per trasmettere dati comprende le seguenti fasi:
a) Preparazione da parte dell’almeno un nodo sorgente di un pacchetto di dati da trasmettere ad ognuno di detta pluralità di nodi riceventi; b) Notifica da parte di un driver a detta determinata scheda di rete associata a detto nodo sorgente delle informazioni per trasmettere i dati ad ognuno di detta pluralità di nodi riceventi;
c) Lettura da parte di detta determinata scheda di rete associata a detto nodo sorgente di detti dati così notificati dal driver e trasmissione ad ognuno di detta pluralità di nodi riceventi;
d) Comunicazione di avvenuto invio da parte della scheda associata a detto nodo sorgente.
Secondo una forma di realizzazione, detto metodo comprende inoltre la fase e) di memorizzare su una porzione di hardware della scheda di rete associata a detto nodo sorgente informazioni sui trasferimenti precedentemente effettuati.
In questo modo, è possibile riutilizzare tale informazioni così memorizzate nel caso sia richiesto un nuovo trasferimento di dati ad uno stesso indirizzo di nodo ricevente.
Secondo una forma di realizzazione, detto metodo comprende inoltre la fase f) in cui detta scheda di rete associata a detto nodo sorgente comunica a detto driver l’avvenuta trasmissione dati ai vari nodi riceventi.
Eventuali ulteriori forme di realizzazione della presente invenzione sono specificate nelle rivendicazioni.
La presente invenzione viene illustrata qui di seguito in maggior dettaglio mediante descrizione dettagliata della forma di realizzazione esemplificativa e non limitativa illustrata nella tavola di disegno in allegato, dove
- la Figura 1 mostra una vista schematica di un sistema di trasmissione dati secondo una prima forma di realizzazione della presente invenzione in cui sono mostrati un nodo sorgente e tre nodi riceventi;
- la Figura 2 mostra una vista schematica di un sistema di trasmissione dati secondo una seconda forma di realizzazione della presente invenzione in cui sono mostrati un nodo sorgente e tre nodi riceventi;
- la Figura 3 mostra una vista schematica di un sistema di trasmissione dati secondo una terza forma di realizzazione della presente invenzione in cui sono mostrati un nodo sorgente e tre nodi riceventi.
Descrizione dettagliata
Con riferimento alle Figure 1-3 viene qui di seguito descritta una forma di realizzazione del sistema di trasferimento dati e del relativo metodo secondo la presente invenzione.
In ognuna delle Fig. 1-3 sono infatti mostrati un nodo sorgente 3 (ad esempio, un computer) ed una serie di tre nodi riceventi 4A, 4B e 4C (ad esempio, altri tre computer), ognuno dei quali è messo in comunicazione con il nodo sorgente 3 tramite la rete di interconnessione 2. Al nodo sorgente 3 è associata la scheda di rete 5, mentre ad ognuno dei nodi riceventi 4A, 4B e 4C è associata, rispettivamente la scheda di rete 5A, 5B e 5C, laddove le schede di rete 5, 5A, 5B e 5C sono uguali tra loro. Inoltre, il nodo sorgente 3 comprende una memoria 6 al cui interno è predisposta un’area di immagazzinamento 7, detta anche “buffer”, atta a contenere temporaneamente i dati in attesa di essere trasmessi ai nodi riceventi 4A, 4B e 4C che, a loro volta, contengono al loro interno una corrispondente memoria 6A, 6B e 6C per conservare i dati a loro trasmessi.
Operativamente, il sistema di trasmissione dati esegue le seguenti fasi: il driver scrive una stringa di dati nella memoria 6 del computer 3 e notifica al buffer 7 che la stringa di dati è pronta in tale memoria 6. La scheda di rete 5 associata al nodo sorgente fraziona i dati da trasmettere ai nodi riceventi 4A, 4B e 4C in una serie di frazioni di dati F1, F2, F3, indicando per ogni frazione di dati F1, F2, F3, l’indirizzo fisico di memoria iniziale e la dimensione dei dati. Il sistema a questo punto verifica quanti siano i nodi riceventi coinvolti nella trasmissione di dati che sta per avvenire e le dimensioni dei pacchetti di dati che devono essere preparati a partire da tale stringa di dati per essere trasmessi ad ogni nodo ricevente.
Nell’esempio mostrato in Fig.1 ci sono tre nodi riceventi 4A, 4B e 4C ed il buffer di dati 7 è stato frazionato in modo da ottenere le tre frazioni di dati F1, F2, F3. Tuttavia, in altre forme di realizzazione dell’invenzione, il numero di frazioni x può essere maggiore o minore rispetto al numero N di nodi riceventi.
La prima frazione di dati F1 viene quindi trasmessa dal nodo sorgente 3 al primo nodo ricevente 4A tramite la scheda di rete 5 associata al nodo sorgente 3 e tramite la scheda di rete 5A associata al primo nodo ricevente 4A. Non appena viene iniziata tale trasmissione della frazione di dati F1 al nodo ricevente 4A, la scheda di rete 5 associata al nodo sorgente 3 attiva anche la trasmissione della seconda frazione di dati F2 dal nodo sorgente 3 al secondo nodo ricevente 4B tramite la scheda di rete 5B associata al nodo ricevente 4B e, contemporaneamente, l’analoga trasmissione della frazione di dati F3 al nodo ricevente 4C. C’è da notare che in una forma di realizzazione (non mostrata nella figura 1) in cui fossero presenti ulteriori nodi riceventi (per un totale di N nodi riceventi), la scheda di rete 5 associata al nodo sorgente 3 attiverebbe la trasmissione in sequenza di N frazioni di dati FN, una per ognuno degli N nodi riceventi.
Successivamente, nella forma di realizzazione mostrata in Figura 1, la scheda di rete 5 del nodo sorgente 3 memorizza quindi in un dispositivo di memoria posizionato in tale stessa scheda di rete 5 l’avvenuto trasferimento di tale frazione di dati e l’indirizzo del corrispondente nodo ricevente 4N. In questo modo, avendo già a disposizione l’indirizzo dei nodi riceventi a cui sono state trasmesse le frazioni di dati, viene accelerata la procedura di trasmissione quando una nuova frazione di dati deve essere inviata ad un nodo ricevente 4N già noto dalla scheda di rete 5 associata al nodo sorgente 3.
Quindi, la scheda di rete 5 associata al nodo sorgente 3 verifica se a tale nodo ricevente 4N sono state trasmesse tutte le frazioni di dati F1.. Fx a lui destinate. Nel caso ci sia almeno ancora una frazione di dati Fy da trasmettere a tale nodo ricevente 4N, la scheda di rete 5 associata al nodo sorgente 3 verifica se tale frazione di dati Fy sia pronta per la trasmissione a tale nodo ricevente 4N, o se sia ancora in corso un’analoga trasmissione di tale frazione di dati Fy ad un altro nodo ricevente differente dal nodo ricevente 4N. Non appena tale frazione di dati Fy risulta essere pronta per la trasmissione a tale nodo ricevente 4N, la scheda di rete 5 associata al nodo sorgente 3 attiva tale trasmissione di frazione di dati Fy al nodo ricevente 4N.
Ogni volta che viene completata la trasmissione di una determinata frazione di dati ad un determinato nodo ricevente 4A, 4B e 4C, la scheda di rete 5 associata al nodo sorgente 3 aggiorna i dati memorizzati sul dispositivo di memoria posizionato al suo interno in modo da poter facilmente verificare quante frazioni di dati siano state inviate ad ogni singolo nodo ricevente e, di conseguenza, quanti e quali frazioni di dati devono essere ancora trasmesse ad ogni nodo ricevente.
Tali verifiche e trasmissioni di frazioni di dati da parte della scheda di rete 5 associata al nodo sorgente 3 continuano fino a quando tutti i nodi riceventi 4A, 4B e 4C hanno ricevuto tutte le frazioni di dati F1.. Fx a loro destinate. A questo punto, la scheda di rete 5 associata al nodo sorgente 3 dichiara conclusa la trasmissione delle frazioni di dati F1.. Fx in quanto ad ogni nodo ricevente sono state trasmesse tutte le frazioni di dati F1.. Fx. Pertanto, al termine di tali trasmissioni di frazioni di dati F1.. Fx, nella memoria 6A, 6B e 6C, rispettivamente presente in ogni nodo ricevente 4A, 4B e 4C, sono disponibili tutte le frazioni di dati F1.. Fx a loro destinate. In particolare, nella forma di realizzazione sopra descritta con riferimento alla Fig. 1, il buffer di dati 7 è stato frazionato nelle frazioni di dati F1, F2, F3 in modo che ognuno dei nodi riceventi 4A, 4B e 4C abbia ricevuto una frazione di dati differente da quella ricevuta dagli altri nodi riceventi.
Essendo presente una scheda di rete 5A, 5B e 5C associata ad un corrispondente nodo ricevente 4A, 4B e 4C ed ognuna di tali schede di rete 5A, 5B e 5C essendo in grado di comunicare indipendentemente dalle altre, tramite la rete di interconnessione 2, con la scheda di rete 5 associata al nodo sorgente 3, ne consegue che ogni scheda di rete 5A, 5B e 5C può gestire la trasmissione di frazione di dati F1.. Fx verso il corrispondente nodo ricevente 4A, 4B e 4C a cui è associata in modo autonomo, senza dover seguire gli esiti delle trasmissioni di dati dal nodo sorgente 3 verso gli altri nodi riceventi. Pertanto, le trasmissioni delle frazioni di dati F1.. Fx dal nodo sorgente 3 ai vari nodi riceventi 4A, 4B e 4C possono avvenire sostanzialmente contemporaneamente.
Pertanto, nella presente invenzione si ha il vantaggio di poter accelerare la trasmissione delle frazioni di dati verso i nodi riceventi, senza dover aspettare che venga completata la trasmissione di dati dal nodo sorgente ad un nodo ricevente prima di iniziare la trasmissione dati dal nodo sorgente ad un successivo nodo ricevente, cosa che invece succede nei sistemi di trasmissione dati noti nell’arte che usano schede di rete del tipo Ethernet e Infiniband.
Con la presente invenzione vengono quindi ottenute alte prestazioni di trasmissione dati.
Con riferimento alla Fig. 2, viene qui di seguito descritta una seconda forma di realizzazione del sistema di trasferimento dati e del relativo metodo secondo la presente invenzione. Tale seconda forma di realizzazione è sostanzialmente simile alla forma di realizzazione mostrata sopra con riferimento alla Fig. 1, con l’unica differenza che alcune delle frazioni di dati F1, F2, F3 vengono trasmesse a più di un nodo ricevente 4A, 4B e 4C.
Infatti, in tale seconda forma di realizzazione, il nodo ricevente 4A riceve la frazione di dati F1, il nodo ricevente 4B riceve le frazioni di dati F1 ed F2, ed il nodo ricevente 4C riceve le frazioni di dati F1, F2 ed F3. Quindi, la frazione di dati F1 viene trasmessa a tutti i nodi riceventi 4A, 4B e 4C, mentre la frazione di dati F2 viene trasmessa ai nodi riceventi 4B e 4C, e la frazione di dati F3 viene trasmessa solamente al nodo ricevente 4C.
Con riferimento alla Fig. 3, viene qui di seguito descritta una terza forma di realizzazione del sistema di trasferimento dati e del relativo metodo secondo la presente invenzione. Tale terza forma di realizzazione è sostanzialmente simile alla forma di realizzazione mostrata sopra con riferimento alle Fig. 1 e 2, con l’unica differenza che tutte le frazioni di dati F1, F2, F3 vengono trasmesse a tutti i nodi riceventi 4A, 4B e 4C.
La presente invenzione è stata qui descritta con riferimento a sue forme di realizzazione preferite, ma si comprenderà che potranno essere apportate modifiche equivalenti senza uscire dall'ambito della tutela accordata ad essa.
Ad esempio, essendo la scheda di rete associata al nodo sorgente uguale ad ognuna delle schede di rete associate rispettivamente ad ognuno di detti nodi riceventi, ogni nodo può essere utilizzato, a seconda delle esigenze, sia come nodo sorgente che come destinatario. Pertanto, nel contesto del calcolo scientifico ad alte prestazioni, il concetto di nodo sorgente e di nodo destinatario risulta essere dinamico ed intercambiabile durante l’esecuzione di un’applicazione.
Di conseguenza, l’ambito di protezione della presente invenzione non deve essere limitato alle forme di realizzazione particolari sopra descritte solo a scopo esemplificativo, ma deve essere considerato in base alle rivendicazioni qui allegate.

Claims (12)

  1. RIVENDICAZIONI 1. Sistema di trasmissione dati (1) attraverso una rete di interconnessione (2) tra almeno un nodo sorgente (3) ed una pluralità di N nodi riceventi distinti (4A,..,4N), in cui a detto nodo sorgente (3) è associata una scheda di rete (5) e ad ognuno di detta pluralità di N nodi riceventi distinti (4A,..,4N) è associata rispettivamente una scheda di rete (5A,..,5N), caratterizzato dal fatto che detto nodo sorgente (3) è configurato in modo da frazionare l’insieme di dati di partenza (7) in una pluralità di X frazioni distinte di dati (F1, .. FX) e da comunicare a detta scheda di rete (5) ad esso (3) associata le informazioni relative all’indirizzo di partenza e quale/i tra le frazioni distinte di dati (F1, .. FX) deve/ono essere trasmessa/e ad ogni specifico nodo ricevente (4A,..,4N).
  2. 2. Sistema di trasmissione dati (1) secondo la rivendicazione 1, in cui ad ogni nodo ricevente distinto (4A,..,4N) viene trasmessa almeno una frazione di dati (F1, .. FX) differente/i dalla almeno una frazione di dati (F1, .. FX) trasmessa ad ogni altro nodo ricevente (4A,..,4N).
  3. 3. Sistema di trasmissione dati (1) secondo la rivendicazione 1, in cui almeno una stessa frazione di dati (F1, .. FX) viene trasmessa ad almeno due differenti nodi riceventi (4A,..,4N).
  4. 4. Sistema di trasmissione dati (1) secondo la rivendicazione 1, in cui ad ogni nodo ricevente distinto (4A,..,4N) viene trasmessa la totalità di dette frazioni distinte di dati (F1, .. FX).
  5. 5. Sistema di trasmissione dati (1) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta scheda di rete (5) associata a detto nodo sorgente (3) è configurata in modo da trasmettere una prima frazione di dati F1 di dette frazioni di dati (F1, .. FX) ad un primo nodo ricevente (4A), tramite detta scheda di rete (5A) associata a detto primo nodo ricevente (4A), e configurata inoltre in modo da trasmettere in sequenza altre frazioni di dati (F1, .. FX) ad una sequenza di altri nodi riceventi (4B,..,4N), differenti tra loro e differenti da tale primo nodo ricevente (4A), tramite dette schede di rete (5B,..,5N) rispettivamente associate a detti altri nodi riceventi (4B,..,4N), senza dover aspettare il completamento della trasmissione di dati al nodo ricevente (4A) attivato precedentemente.
  6. 6. Sistema di trasmissione dati (1) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta scheda di rete (5) associata al nodo sorgente (3) è configurata in modo da notificare ad un driver l’avvenuto invio di ognuna di dette frazioni di dati (F1, .. FX) ad uno specifico nodo ricevente (4).
  7. 7. Sistema di trasmissione dati (1) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta scheda di rete (5) associata al nodo sorgente (3) è configurata in modo che, una volta completata la trasmissione di una frazione di dati (F) ad un nodo ricevente (4), tale frazione di dati (F) viene trasmessa ad un altro nodo ricevente a cui non sia ancora stata trasmessa tale frazione di dati (F), non appena sia stata completata una precedente trasmissione di frazione di dati (F) a tale altro nodo ricevente.
  8. 8. Sistema di trasmissione dati secondo una qualsiasi delle rivendicazioni precedenti, in cui detta scheda di rete (5) associata a detto nodo sorgente (3) è uguale ad ognuna di dette schede di rete (5A,..,5N) associate rispettivamente ad ognuno di detti nodi riceventi (4A,..,4N).
  9. 9. Sistema di trasmissione dati (1) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta scheda di rete (5) associata al nodo sorgente (3) è configurata in modo da comprendere un dispositivo, posizionato in tale stessa scheda di rete (5), in grado di memorizzare informazioni relative al tipo di frazione di dati (F) che è stata trasmessa ad un particolare nodo ricevente (4) e l’indirizzo corrispondente di tale nodo ricevente (4).
  10. 10. Metodo per trasmettere dati in una rete di interconnessione (2) tra almeno un nodo sorgente (3) ed una pluralità di nodi riceventi (4A,..,4N), in cui a detto nodo sorgente (3) è associata una scheda di rete (5) e ad ognuno di detta pluralità di nodi riceventi distinti (4A,..,4N) è associata rispettivamente una propria scheda di rete (5A,..,5N), in cui mediante detta scheda di rete (5) associata a detto nodo sorgente (3) l’insieme di dati di partenza (7) da trasmettere ad ognuno di detta pluralità di nodi riceventi distinti (4A,..,4N) viene frazionato in una pluralità di X frazioni di dati distinte (F1, .. FX) ed a detta scheda di rete (5) associata a detto nodo sorgente (3) vengono trasmesse le informazioni relative all’indirizzo di partenza e quale/i tra le frazioni distinte di dati (F1, .. FX) deve/ono essere trasmessa/e ad ogni specifico nodo ricevente (4A,..,4N).
  11. 11. Metodo per trasmettere dati secondo la rivendicazione 10 che comprende le seguenti fasi: a) Preparazione da parte dell’almeno un nodo sorgente (3) di un pacchetto di dati (7) da trasmettere ad ognuno di detta pluralità di nodi riceventi (4A,..,4N); b) Notifica da parte di un driver a detta determinata scheda di rete (5) associata a detto nodo sorgente (3) delle informazioni per trasmettere i dati ad ognuno di detta pluralità di nodi riceventi (4A,..,4N); c) Lettura da parte di detta determinata scheda di rete (5) associata a detto nodo sorgente (3) di detti dati così notificati dal driver e trasmissione ad ognuno di detta pluralità di nodi riceventi (4A,..,4N); d) Comunicazione di avvenuto invio da parte della scheda (5) associata a detto nodo sorgente (3).
  12. 12. Metodo per trasmettere dati secondo la rivendicazione 10 od 11 che comprende inoltre la fase e) di memorizzare su una porzione di hardware della scheda di rete (5) associata a detto nodo sorgente (3) un certo numero di informazioni sui trasferimenti precedentemente effettuati.
IT102016000071637A 2016-07-08 2016-07-08 Sistema per accelerare la trasmissione dati nelle interconnessioni di rete IT201600071637A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT102016000071637A IT201600071637A1 (it) 2016-07-08 2016-07-08 Sistema per accelerare la trasmissione dati nelle interconnessioni di rete
PCT/IB2017/054100 WO2018007988A1 (en) 2016-07-08 2017-07-07 System for accelerating data transmission in network interconnections

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102016000071637A IT201600071637A1 (it) 2016-07-08 2016-07-08 Sistema per accelerare la trasmissione dati nelle interconnessioni di rete

Publications (1)

Publication Number Publication Date
IT201600071637A1 true IT201600071637A1 (it) 2018-01-08

Family

ID=57796801

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102016000071637A IT201600071637A1 (it) 2016-07-08 2016-07-08 Sistema per accelerare la trasmissione dati nelle interconnessioni di rete

Country Status (2)

Country Link
IT (1) IT201600071637A1 (it)
WO (1) WO2018007988A1 (it)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090252168A1 (en) * 2008-04-02 2009-10-08 Alaxala Networks Corporation Multi-plane cell switch fabric system
US20120188934A1 (en) * 2009-10-06 2012-07-26 Hang Liu Method and apparatus for hop-by-hop reliable multicast in wireless networks
US20150039793A1 (en) * 2012-03-14 2015-02-05 Istituto Nazionale Di Fisica Nucleare Network interface card for a computing node of a parallel computer accelerated by general purpose graphics processing units, and related inter-node communication method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090252168A1 (en) * 2008-04-02 2009-10-08 Alaxala Networks Corporation Multi-plane cell switch fabric system
US20120188934A1 (en) * 2009-10-06 2012-07-26 Hang Liu Method and apparatus for hop-by-hop reliable multicast in wireless networks
US20150039793A1 (en) * 2012-03-14 2015-02-05 Istituto Nazionale Di Fisica Nucleare Network interface card for a computing node of a parallel computer accelerated by general purpose graphics processing units, and related inter-node communication method

Also Published As

Publication number Publication date
WO2018007988A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
US10382362B2 (en) Network server having hardware-based virtual router integrated circuit for virtual networking
US9565135B2 (en) System and method for service chaining with tunnel chains in software defined network
WO2018058677A1 (zh) 一种报文处理方法、计算设备以及报文处理装置
US20200265043A1 (en) High performance computing system
US20160112502A1 (en) Distributed computing based on deep packet inspection by network devices along network path to computing device
CN102334112A (zh) 用于虚拟机网络的方法和系统
US20150312160A1 (en) System for flexible dynamic reassignment of throughput
WO2019128740A1 (zh) 一种报文处理方法和装置
CN112491715B (zh) 路由装置及片上网络的路由设备
JP2017530643A5 (it)
CN111985181B (zh) 一种节点布局方法、装置、计算机设备及存储介质
CN107453971B (zh) 通信方法、通信系统、计算机系统及计算机可读存储介质
CN116915708A (zh) 路由数据包的方法、处理器及可读存储介质
IT201600071637A1 (it) Sistema per accelerare la trasmissione dati nelle interconnessioni di rete
WO2015120741A1 (zh) 一种通告集群系统带宽的方法及控制器
KR102524579B1 (ko) 파장 가변 레이저 다이오드의 파장이 변환되는 시간에 기초하여 포토닉 프레임을 전송할 시간을 결정하는 포토닉 프레임 스위칭 시스템
US10104003B1 (en) Method and apparatus for packet processing
US9621487B2 (en) Method and apparatus for protection switching based on memory control in packet transport system
US11201829B2 (en) Technologies for pacing network packet transmissions
US9467389B2 (en) Handling large frames in a virtualized fibre channel over ethernet (FCoE) data forwarder
EP3148163B1 (en) Function transfer method, device and system
WO2017064833A1 (ja) 通信管理一覧生成装置、通信管理一覧生成方法、および通信管理一覧生成プログラムが記憶された記憶媒体
WO2019085879A1 (zh) 一种比特块处理方法及节点
US20190014168A1 (en) Computer Network using Multiple Connection Pathways
WO2022110384A1 (zh) 路由控制方法、装置、路由设备及存储介质