April 25, 2024

PAPERS

A volte la vita ti colpirà alla testa con un mattone

La spinta verso lo storage computazionale

Il settore IT cerca sempre di superare i colli di bottiglia e uno dei più grandi è l’input/output (I/O). Che si tratti della larghezza di banda della memoria, della larghezza di banda della rete o della velocità di aggiornamento di uno schermo ad alta risoluzione, la velocità con cui i dati possono essere copiati dalla CPU (unità di elaborazione centrale o microprocessore) su un dispositivo esterno limita le prestazioni complessive.

Le nuove generazioni di RAM dinamica (memoria ad accesso casuale) migliorano l’I/O tra la CPU e la memoria principale del computer. Le GPU (unità di elaborazione grafica) si occupano dell’elaborazione grafica, riducendo l’I/O necessario per il rendering della grafica e aumentando significativamente le prestazioni, specialmente nei giochi per computer.

Ma l’immensa potenza della GPU ha anche portato a nuove aree applicative in cui sono richiesti calcoli altamente parallelizzati. Una GPU accelererà l’apprendimento automatico e i motori di inferenza per il processo decisionale basato sull’intelligenza artificiale (AI).

Esiste un caso per l’elaborazione dei dati in-storage?

Il software funziona sui dati e i dati sono spesso considerati il ​​”nuovo petrolio”. Quindi ha senso mettere i dati il ​​più vicino possibile a dove vengono elaborati, al fine di ridurre la latenza per le attività di elaborazione affamate di prestazioni. Alcune architetture richiedono grandi blocchi di memoria simile alla memoria situati vicino alla funzione di calcolo, mentre, al contrario, in alcuni casi ha più senso spostare il calcolo più vicino allo spazio di archiviazione di massa.

La crescita dei dati ha portato alcuni nel settore a chiedersi se i dispositivi di archiviazione possano essere utilizzati in modo analogo alla GPU, per accelerare le attività di elaborazione dei dati. Questo è il regno dello storage computazionale, un termine usato per descrivere una combinazione di software e hardware per scaricare e alleviare i vincoli su elaborazione, memoria e storage esistenti, nel tentativo di migliorare le prestazioni delle applicazioni e/o l’efficienza dell’infrastruttura.

All’inizio di quest’anno, Antonio Barbalace, docente presso l’Institute for Computing Systems Architecture dell’Università di Edimburgo, pubblicato un articolo, scritto in collaborazione con Microsoft Research, Archiviazione computazionale: a che punto siamo oggi?, guardando lo stato attuale della memoria computazionale.

“Possiamo fare qualcosa con l’archiviazione?” dice, sottolineando che le organizzazioni stanno investendo grandi quantità di dati, che poi devono essere elaborati. “Ad esempio, i database sono estremamente grandi”, aggiunge. “Copiano i dati dai dispositivi di archiviazione per elaborarli nella RAM. Ci vuole molto tempo per spostare un database in memoria.”

Esiste, quindi, un caso valido per eseguire query al database sul dispositivo di archiviazione, per evitare il collo di bottiglia di I/O quando i dati vengono copiati avanti e indietro dal dispositivo di archiviazione alla RAM del computer.

Alcune attività vengono già eseguite sui controller di storage utilizzati per gestire i dispositivi fisici come gli array di dischi, afferma Matt Armstrong-Barnes, CTO di HPE. “Deduplicazione, compressione e decompressione sono già gestite dagli array di archiviazione”, afferma. Tali usi non sono classificati come storage computazionale, ma illustrano come i controller di storage stanno diventando più intelligenti.

Accelerazione hardware

Ma per Barbalace, l’archiviazione computazionale ha aspirazioni più alte. Dice che un dispositivo di archiviazione computazionale potrebbe eseguire semplici operazioni sui dati per ridurre la quantità di dati che devono essere inviati alla CPU. L’elaborazione dei dati all’edge, come su un dispositivo Internet of Things (IoT), è una delle possibili aree di applicazione, in cui i dati dei sensori vengono trasmessi direttamente a un dispositivo di archiviazione. La CPU sul dispositivo periferico verrebbe quindi avvisata non appena si verifica un’anomalia o a intervalli di tempo regolari, per caricare i dati del sensore sul cloud.

Alcuni produttori hanno sviluppato dispositivi SSD intelligenti basati su circuiti integrati specifici per applicazioni (ASIC) per accelerare funzioni fisse, come algoritmi di transcodifica video, che vengono eseguiti direttamente sui dispositivi.

Un’altra opzione è l’uso di array di porte programmabili sul campo (FPGA) per accelerare le funzioni fisse. Xilinx ha sviluppato una piattaforma basata su FPGA, che viene utilizzata nel dispositivo di archiviazione computazionale SmartSSD di Samsung.

La società ha registrato un aumento del 20% delle sue attività di data center per il quarto trimestre del 2021 e lo storage è stata una delle aree di crescita. Il documento presentato da Xilinx per il quarto trimestre 2021 mostra che la crescita annuale dei ricavi è guidata dall’adozione tra i suoi clienti hyperscale attraverso carichi di lavoro di calcolo, rete e storage.

“Xilinx mantiene un forte impegno con gli hyperscaler per fornire soluzioni per il calcolo AI, l’accelerazione video, il networking componibile e lo storage computazionale”, ha affermato la società nel suo rendiconto finanziario per il quarto trimestre del 2021.

Uno dei suoi partner, Lewis Rhodes Labs, offre quella che descrive come una ricerca forense informatica nell’appliance di archiviazione. Questa è un’appliance del motore di ricerca con espressioni regolari, che la società afferma essere stata ottimizzata per il rilevamento delle anomalie. Secondo Lewis Rhodes Labs, l’appliance con accelerazione FPGA, dotata di 24 SmartSSD, può cercare 96 Tbyte di storage a una velocità di 60 Gbps, fornendo risultati in meno di 25 minuti.

NGD Systems è un’altra azienda che viene spesso menzionata nelle conversazioni sull’archiviazione computazionale. Offre un SSD intelligente basato sul processore ARM, il che significa che i suoi prodotti possono utilizzare il sistema operativo Linux su cui possono essere eseguiti algoritmi più generici.

Nel febbraio 2020, NGD Systems ha annunciato un round di finanziamento di serie C da 20 milioni di dollari per supportare e accelerare la produzione e l’implementazione di quella che afferma essere la prima unità di archiviazione computazionale NVMe (non volatile memory express) al mondo. Le aree di applicazione includono la fornitura di un modo per eseguire l’intelligenza artificiale e l’apprendimento automatico all’interno del dispositivo in cui risiedono i dati.

Booking.com ha utilizzato questa tecnologia nei propri datacenter. La potenza e la latenza di scrittura sono parametri chiave dei datacenter nei datacenter del sito web di viaggi.

Peter Buschman, product owner, storage di Booking.com, afferma: “Abbiamo riscontrato che le unità NGD Systems sono le migliori della categoria rispetto a questa combinazione di caratteristiche. La latenza, in particolare, era costantemente bassa per un dispositivo con un assorbimento di potenza così ridotto. Con il potere, non lo spazio, che è il nostro più grande vincolo e l’impatto ambientale una preoccupazione crescente, questa tecnologia è molto promettente per l’uso negli ambienti dei data center di prossima generazione.

L’archiviazione computazionale non si limita solo all’aggiunta di funzionalità intelligenti direttamente a un SSD. Proprio come le schede grafiche dotate di GPU vengono utilizzate per accelerare le applicazioni ottimizzate per il calcolo parallelo, una scheda di espansione della memoria computazionale potrebbe essere collegata a una scheda madre del PC per accelerare determinate funzioni di elaborazione dei dati.

Programmazione della memoria computazionale

Nel documento di cui è stato coautore con Microsoft Research, Barbalace ha esaminato come adattare le applicazioni a sfruttare l’archiviazione computazionale. Dice che ci sono molti algoritmi che possono essere classificati come flussi di dati. Un esempio è AWS Lamda, utilizzato per elaborare i flussi di dati. “Un’applicazione può scomporre i dati per farli fluire in più parti”, afferma. “Uno di questi potrebbe essere assegnato all’archiviazione computazionale”.

Ad esempio, un carico di lavoro AI può essere suddiviso in modo che alcune parti vengano eseguite direttamente sullo storage computazionale, mentre altre parti utilizzino la CPU. Anche i carichi di lavoro di calcolo ad alte prestazioni altamente distribuiti, come le previsioni del tempo, possono sfruttare l’archiviazione computazionale. “La domanda è se i dati possono essere elaborati in modo più efficiente su un dispositivo di archiviazione computazionale”, afferma Barbalace.

Questo vale sia per i dati on-premise che per quelli ospitati nel cloud. Un esempio recente di Amazon Web Services (AWS) illustra come l’elaborazione dei dati può essere spostata più vicino al luogo in cui è archiviata per aumentare l’efficienza. Sebbene non sia strettamente computazionale, in a blog pubblicato a marzo 2020, gli architetti di AWS David Green e Mustafa Rahimi hanno discusso di come una funzionalità di cloud storage S3 chiamata S3 Select possa essere utilizzata per eseguire query SQL direttamente sui dati archiviati nel cloud di Amazon.

Hanno scritto: “I clienti possono caricare i dati direttamente su S3 utilizzando AWS SFTP [secure shell file transfer protocol] e quindi interrogare i dati utilizzando S3 Select. Questo lavoro può essere attivato automaticamente da un’esecuzione di AWS Lambda dopo un nuovo CSV [comma separated value] l’oggetto viene caricato in S3 con le notifiche di eventi S3. La ricerca tra i tuoi dati utilizzando S3 Select può potenzialmente farti risparmiare tempo e denaro spesi per esaminare i dati in altri modi.

Il documento di Barbalace e Microsoft copre anche altre due opzioni per la programmazione dell’archiviazione computazionale. La memoria condivisa è una tecnica spesso utilizzata nell’hardware multiprocessore per consentire a CPU diverse di lavorare sullo stesso set di dati. Questa tecnica può essere applicata anche all’archiviazione computazionale, se il software di sistema viene modificato di conseguenza.

Il client/server computing è la terza categoria di storage computazionale che Barbalace identifica nella sua ricerca. Un documento di NGD Systems e ricercatori dell’Università della California e dell’Università di Teheran, pubblicato su Giornale dei Big Data nel 2019, ha discusso di come l’archiviazione computazionale potrebbe basarsi sull’approccio altamente distribuito all’archiviazione e all’elaborazione dei dati che Hadoop MapReduce utilizza con i suoi DataNode, utilizzati per archiviare ed elaborare i dati.

“I dispositivi di archiviazione computazionale abilitati per Hadoop possono svolgere contemporaneamente entrambi i ruoli di unità di archiviazione veloci per DataNode Hadoop convenzionali e DataNode abilitati all’elaborazione in-storage, con conseguente aumento della potenza di elaborazione”, hanno scritto gli autori del rapporto.

Sfide e direzione futura

È ancora agli inizi per l’archiviazione computazionale. Bola Rotibi, analista principale di CCS Insight, ritiene che una delle sfide sia il modo in cui i gestori dello storage evolvono in programmatori. “Gli addetti allo storage non fanno molta programmazione”, afferma.

Armstrong-Barnes di HPE non è convinto che gli SSD intelligenti e l’archiviazione computazionale otterranno lo stesso successo delle GPU nell’elaborazione mainstream. “Il petrolio non si mescola molto bene e questa è la sfida quando si aggiungono carichi di lavoro di data science da luoghi diversi”, afferma.

Per Barbalace, un’area che rimane ancora irrisolta è la multi-tenancy, poiché e quando l’archiviazione computazionale viene fornita su richiesta dai provider di cloud pubblico. Poiché i dati vengono archiviati nel cloud pubblico su più pool di archiviazione, potrebbe essere necessario eseguire l’archiviazione computazionale su un sottoinsieme specifico di dati che può essere suddiviso tra diversi server fisici.

Nonostante queste sfide, il motivo per cui le persone pensano allo storage computazionale è la crescita esponenziale dei volumi di dati. “Oggi, i dati vengono archiviati in determinati modi semplicemente a causa del modo in cui le architetture della CPU si sono evolute”, afferma Adrian Fern, fondatore e CTO di Prizsm Technologies. “Ma non è adatto allo scopo quando si tratta di accedere ai volumi di dati disponibili ora e alla crescita esponenziale che sperimenteremo mentre ci avviciniamo all’era quantistica”.

Quindi, mentre è ancora agli inizi per l’archiviazione computazionale, anche l’informatica quantistica tradizionale è in una fase iniziale di sviluppo. Tuttavia, poiché queste due aree dell’informatica si evolvono, lo storage computazionale potrebbe essere necessario per stare al passo con il l’appetito di elaborazione di un computer quantistico.