# Multiflow

Multiflow Computer, Inc. era una società produttrice di minisupercomputer e software per la progettazione di processori bastati su architettura VLIW. La società venne fondata nell'aprile 1984 nel New Haven nel Connecticut (USA) e smise di operare nel marzo del 1990 dopo aver venduto 125 minisupercomputer negli Stati Uniti d'America, Europa e Giappone.
Sebbene il successo commerciale fosse limitato, insieme alla società Cydrome dimostrarono che l'architettura VLIW era funzionale e che era possibile realizzare sistemi ad alte prestazioni basati su quest'architettura. I brevetti delle società sono stati acquisiti da altre società che li hanno utilizzato in applicazioni embedded e anche in computer di uso generale.

## Storia
### Tecnologia di base

All'inizio degli anni ottanta Josh Fisher sviluppò una tecnica di ottimizzazione per compilatori chiamata trace scheduling. Questa tecnica permetteva di individuare un elevato numero di istruzioni eseguibili in parallelo e in congiunzione con altre tecniche sviluppate da Fisher rese possibile iniziare a pensare a processori di uso generico in grado di elaborare molte istruzioni in parallelo. Queste innovazioni non potevano essere integrate nei processori, ma utilizzando altri studi portarono Fisher allo sviluppo dell'architettura VLIW. In questa architettura il processore era dotato di molte unità funzionali che potevano lavorare in parallelo, l'individuazione e l'organizzazione delle istruzioni da eseguire in parallelo veniva svolta dal compilatore e quindi il processore risultava essere molto semplice, ma comunque molto veloce.
Il primo compilatore VLIW venne sviluppato da John Ellis durante la sua tesi di dottorato, tesi supervisionata da Fisher. Intanto Fisher avviò lo sviluppo del progetto Enormously Long Instructions (ELI), questo progetto mirava a sviluppare un sistema VLIW funzionante.

### Multiflow

Il progetto ELI era dotato di parole da 512 bit e doveva essere in grado di eseguire da 10 fino a 30 istruzioni tipo RISC per ciclo di clock. Comunque il progetto non venne mai completato, Fisher, Ruttenberg, e John O'Donnell i tre responsabili del progetto decisero di abbandonare l'università, dato che nessuna società informatica aveva mostrato interesse per il progetto ELI. I tre decisero di fondare la Multiflow per sviluppare la loro idea. Inizialmente la Multiflow doveva essere una divisione di Apollo Computer, ma in seguito i fondatori decisero di realizzare una società autonoma e cercarono dei finanziatori. Trovarono il primo gruppo di finanziatori quando la società aveva già 20 dipendenti. Donald E. Eckdahl, precedente direttore della divisione computer NCR entrò nella società nel 1985 e divenne il CEO.
La società installo i primi sistemi di test all'inizio del 1987 presso tre aziende, la Grumman Aircraft, la Sikorsky Helicopter, e il Supercomputer Research Center. Il Trace 14/1200 venne presentato al pubblico nel maggio 1987 a Santa Clara in California.

## Tecnologia
### Architettura

I primi sistemi Multiflow si chiamavano Trace 7/200 e Trace 14/200. Il 7/ era un computer in grado di iniziare sette operazioni per ciclo di clock, utilizzava parole di 256 bit formate da 7 istruzioni da 32 bit e da 32 bit utilizzati come bit di controllo. Le sette operazioni nello specifico erano 4 operazioni su interi o 4 operazioni di accesso alla memoria, 2 operazioni in virgola mobile e da un'operazione di salto. Il modello 14/aveva parole da 512 bit e poteva iniziare 14 istruzioni per ciclo di clock. Come la maggior parte dei sistemi scientifici dell'epoca, i computer non erano dotati di memoria cache.
La società aveva annunciato anche il modello 28/, ma alla fine solo pochi esemplari furono effettivamente costruiti e venduti. Il modello 28/ utilizzava parole di 1024 bit e dal punto tecnico era un sistema molto innovativo, dato che con programmi ordinari era in grado di avviare fino a 28 istruzioni per ciclo di clock, un valore superiore a quello dei concorrenti commerciali o accademici. Tuttavia solo pochi programmi erano in grado di fornire così tante operazioni in parallelo e difatti solo pochi acquirenti comprarono questo modello.

### Hardware

Ogni modello 7/ conteneva un'unità di controllo, un'unità aritmetica e logica e un'unità di calcolo in virgola mobile. Il modello 14/ aveva una seconda unità aritmetica logica e una seconda unità in virgola mobile. Prima della messa in commercio dei modelli successivi società terze misero in commercio unità in virgola mobile più veloci. In seguito la famiglia /200 venne sostituita dalla famiglia /300 che era incompatibile con la precedente, ma fu un grande successo commerciale. Nel 1988 la società introdusse i modelli a basso costo /100, questi modelli erano dei modelli /300 con una frequenza di clock ridotta. Tutti i processori vennero prodotti in tecnologia CMOS, le unità in virgola mobile di terze parti e altre componenti erano prodotte con tecnologia MSI.
Nel 1988 la società iniziò lo sviluppo della famiglia /500 basata su logica ECL, il sistema doveva essere utilizzato nel modello 14/, ma poteva essere modificato anche per la famiglia 7/, comunque questo modello non fu completato a causa del fallimento della società.

### Software

Multiflow produsse anche i programmi di sviluppo per i suoi sistemi. Il sistema operativo era il Berkeley Unix. Probabilmente al momento della presentazione i sistemi Multiflow erano gli unici a eseguire più di un'istruzione per ciclo di clock, comunque il sistema operativo e i tool di sviluppo allegati funzionarono su tutti i modelli.
Il compilatore si segnalava per le sue qualità e prestazioni a livello di parallelismo estratto dal codice. La società sviluppo un nuovo compilatore simile a quello sviluppato a Yale, ma con una maggior resistenza agli errori e con una serie di caratteristiche richieste in ambito industriale come ottimizzazioni allo stato dell'arte e la capacità di gestire molti dialetti diversi. Il compilatore era in grado di gestire codice per diverse macchine, i modelli 14/ per esempio pur essendo in grado di eseguire il codice sviluppato per i modelli 7/ esprimeva al meglio le loro prestazioni solo con codice appositamente compilato.
Il compilatore fu in grado di generare codice funzionante dal 1985, ma fu a partire dal 1987 che il compilatore fu in grado di generare codice con elevato parallelismo. Dopo quella data gli sviluppatori enfatizzarono le nuove caratteristiche del compilatore e le sue funzionalità sebbene continuassero a cercare di migliorarne le prestazioni.
Il compilatore era robusto e forniva elevate prestazioni indipendentemente dal sistema hardware. Dopo la chiusura della società il compilatore venne fornito in licenza a molte società come Intel, Hewlett-Packard, Digital Equipment Corporation, Fujitsu, Hughes, Hal Computer Systems, e Silicon Graphics. Altre società licenziatarie furono Equator Technologies, Hitachi e NEC. Il compilatore è stato utilizzato per sviluppare i benchmark per la maggior parte dei processori degli anni 90. Il compilatore viene utilizzato attualmente per sviluppare nuovi compilatori, il MIT e l'Università di Washington sono tra le università che lo utilizzano.
Il compilatore era scritto in linguaggio C, i progettisti del compilatore credevano nel paradigma a oggetti tuttavia il compilatore aveva delle idiocrasie al suo interno. Questo rendeva difficile comprendere il funzionamento del compilatore per i programmatori che dopo la dipartita della Multiflow dovettero adattare il codice alle loro necessità. Comunque il compilatore nonostante la sua peculiare tecnica di programmazione si è dimostrato molto solido e affidabile.

## Andamento commerciale
### Acquirenti

Sebbene alcuni enti avessero acquistato i sistemi Multiflow per analizzare la nuova architettura e vederne le reali prestazioni, la maggior parte delle società acquistò i sistemi per effettuare simulazioni numeriche in ambito meccanico, aerodinamico, chimico ed elettronico. I clienti erano metropoli, multinazionali e enti pubblici. Nel 1987 la GEI Rechnersysteme GmbH una divisione della Daimler-Benz distribuì i sistemi Trace in Germania. Le vendite furono buone nonostante la forte concorrenza degli altri produttori. Negli anni successivi Multiflow aprì uffici e si accordò con distributori in Europa, in Giappone e nel Nord America.

### Fine della società

La società smise di operare il 27 marzo 1990 due giorni dopo il fallimento di un accordo con la Digital Equipment Corporation. Il direttivo della società decise che le prospettive di successo della società erano troppo ridotte per giustificare il rischio di ulteriori investimenti. In quel periodo le società si stavano concentrando sullo sviluppo di computer basati su parallelismo massivo, questi sistemi erano molto più economici delle soluzioni dedicate e permettevano di risolvere in modo adeguato molti compiti.