Root NationNotiziaGiornale informaticoIl MIT sta sviluppando un nuovo linguaggio di programmazione per computer ad alte prestazioni

Il MIT sta sviluppando un nuovo linguaggio di programmazione per computer ad alte prestazioni

-

L'elaborazione ad alte prestazioni è necessaria per risolvere un numero sempre maggiore di attività, come l'elaborazione di immagini o varie applicazioni di deep learning su reti neurali, in cui è necessario elaborare enormi quantità di dati e farlo abbastanza velocemente, altrimenti può richiedere un'incredibile quantità di volta. È opinione diffusa che durante l'esecuzione di tali operazioni sia inevitabile un compromesso tra velocità e affidabilità. Secondo questo pensiero, se la velocità è una priorità, è probabile che l'affidabilità ne risenta e viceversa.

Tuttavia, un gruppo di ricercatori con sede principalmente al Massachusetts Institute of Technology (MIT) sta mettendo in discussione questa nozione, sostenendo che in realtà puoi avere tutto. Secondo Amanda Liu, una studentessa laureata del secondo anno presso il Computer Science and Artificial Intelligence Laboratory (CSAIL) del MIT, con un nuovo linguaggio di programmazione scritto appositamente per il calcolo ad alte prestazioni, “velocità e correttezza non devono competere. Al contrario, possono andare insieme, fianco a fianco, nei programmi che scriviamo". Liu e il suo team hanno parlato del potenziale della loro nuova creazione A Tensor Language (ATL) il mese scorso alla conferenza Principles of Programming Languages ​​a Filadelfia.

"Tutto nella nostra lingua", dice Liu, "ha lo scopo di ottenere un singolo numero o un tensore". I tensori, a loro volta, sono una generalizzazione di vettori e matrici. Mentre i vettori sono oggetti unidimensionali (spesso rappresentati da singole frecce) e le matrici sono familiari array bidimensionali di numeri, i tensori sono array n-dimensionali che possono assumere la forma di un array 3×3×3, per esempio, o anche dimensione superiore (o inferiore).

Il MIT sta sviluppando un nuovo linguaggio di programmazione per computer ad alte prestazioni

L'essenza di un algoritmo o programma per computer è avviare un determinato calcolo. Ma ci possono essere molti modi diversi per scrivere questo programma - "una sorprendente varietà di diverse implementazioni di codice", come scrivono Liu e i suoi coautori nel loro articolo - alcuni dei quali sono significativamente più veloci di altri. La motivazione principale dietro ATL, spiega, è questa: “Dato che l'elaborazione ad alte prestazioni è così dispendiosa in termini di risorse, si desidera essere in grado di modificare o riscrivere i programmi in una forma ottimale per accelerare le cose. Spesso si inizia con il programma più facile da scrivere, ma potrebbe non essere il modo più veloce per eseguirlo, quindi è necessario apportare ulteriori modifiche".

Il nuovo linguaggio di comando si basa sul linguaggio Coq esistente, che include un proof helper. L'assistente alla dimostrazione, a sua volta, ha la capacità di dimostrare matematicamente con precisione le sue affermazioni. Coq ha un'altra proprietà che lo ha reso attraente per il gruppo del MIT: i programmi scritti in quella lingua, o un suo adattamento, terminano sempre e non possono essere eseguiti indefinitamente in cicli infiniti.

Ora è il primo e finora l'unico linguaggio tensoriale con ottimizzazioni formalmente verificate. Il team del MIT avverte, tuttavia, che ATL è ancora solo un prototipo, anche se promettente, che è stato testato su una serie di piccoli programmi.

Leggi anche:

Iscrizione
Avvisare su
ospite

0 Commenti
Recensioni incorporate
Visualizza tutti i commenti