Articolo pubblicato sul n. 101 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel novembre 1990 Prove prodotti:
INMOS
T.I.K. di Andrea de Prisco e Luciano Macera Sul numero scorso, MCmicrocomputer ha parlato per la prima volta, diffusamente, di transputer. Mica avrete perso il numero 100, vero? Bene, dicevamo sempre nel medesimo articolo che la voglia matta (di transputer) c'è venuta dovendo sviluppare un'appendice hardware alla rete per Amiga denominata ADPnetwork (dal nome del suo mostruoso ideatore ...). Già, perché proprio un transputer? La risposta è molto semplice, nonché duplice. Prima di tutto, lavorare con questi mostriciattoli, è quanto mai gratificante grazie al linguaggio OCCAM e alle sue primitive di comunicazione e “parallelizzazione” facilmente utilizzabili. Certo è necessario un serio background “paralleloso”, ma visti gli sforzi già sostenuti per scrivere il software di rete (grazie anche aIl'ADPmttb), questo certo non ci mancava. E poi, non lo nascondiamo, dietro si celava anche la voglia di fare qualcosa di nuovo, inteso anche come tecnologicamente molto avanzato. C’era invece chi ci consigliava di utilizzare uno Z80. Ovviamente è stato immediatamente allontanato dal gruppo... Per lavorare con i transputer non basta però la sola buona volontà. È necessario un apposito sistema di sviluppo, come l'oggetto della prova che state leggendo. Tra l'altro di produzione INMOS, la stessa dei transputer, quindi c'è da fidarsi. Ma la peculiarità di questo prodotto è la possibilità di essere utilizzato anche come scheda acceleratrice da inserire nel proprio PC, oltre che come sistema di sviluppo sia hardware che software per sistemi a transputer. Anzi l'acquisto del sistema potrebbe essere motivato proprio dalla possibilità di essere utilizzato come scheda acceleratrice, da utenti che necessitano di grosse risorse di calcolo e per i quali le macchine della classe PC 386 hanno prestazioni insufficienti. Prima di iniziare la prova del prodotto è bene chiarire un punto fondamentale. Soprattutto prima che qualcuno ordini mille pezzi alla Celdis per poi pentirsene. La scheda non permette ASSOLUTAMENTE di far girare applicazioni MS-DOS a velocità superiori, ma solo di eseguire programmi scritti appositamente per la scheda. Che poi possono anche interfacciarsi opportunamente con altro software scritto per i PC, ma non in maniera trasparente. Quindi accelera, solo se si è in grado di guidarla. Come dire che quest'oggetto serve agli sviluppa tori, prima che agli utenti finali.
Transputer è bello
Per aiutare coloro che non conoscono né i transputer né l'OCCAM, o che per qualche assurdo motivo non hanno il numero 100 di MC (o per qualche motivo ancora più assurdo non hanno letto l'articolo a pagina 191: questa parentesi l'ho aggiunta io, adp, ma mi avrete sicuramente riconosciuto ... ) riassumiamo brevemente le caratteristiche principali. Vi sono 3 famiglie di transputer (tra poco 4, con l'avvento del nuovo H1): T2, T4, T8. Mentre la prima famiglia è a 16 bit le altre sono a 32 bit. A loro volta queste si distinguono per l'unità FPU di cui è dotata, integrata sul medesimo chip, la famiglia maggiore. Il chip T800-20 (famiglia T8 e c10ck a 20 MHz) è dotato di una CPU da 10 Mips, un coprocessore matematico in virgola mobile a 64 bit (standard IEEE 754) capace di 1,5 Mflops, 4 Kbytes di memoria statica veloce da 33 ns ed un hardware per le comunicazioni, costituito da 4 link seriali (bidirezionali) da 20 Mbitls che operano in DMA senza l'ausilio della CPU. Oltre ai citati 4 link, la peculiarità dei transputer consiste nella presenza di uno scheduler hardware per la gestione del multitasking a livello di linguaggio macchina. Inoltre tanto la CPU quanto il coprocessore matematico floating point integrato e i 4 link fisici «verso il mondo esterno» possono operare in maniera concorrente. Contemporaneamente allo sviluppo del transputer la Inmos ha sviluppato «OCCAM», un linguaggio per la programmazione parallela. In OCCAM un programma è descritto come un insieme di processi che operano concorrentemente e comunicano attraverso «canali». Come auspicabile, un'applicazione parallela scritta per un transputer può facilmente essere modificata (anche senza ricompilarla ... ) per girare su più transputer con un incremento delle prestazioni quasi lineare. Può sembrare strano, ma è banalmente vero. Basta infatti solo riprodurre l'eseguibile, utilizzando gli stessi moduli oggetto già compilati e linkati, attraverso l'utility «ICONF» che «confeziona» un nuovo eseguibile per un numero diverso di transputer. Infatti il passaggio da «molti processi» in parallelismo simulato su un solo transputer a « molti processi» in parallelismo reale su più transputer, non coinvolge operazioni di ricompilazione grazie al fatto che dal punto di vista OCCAM non c'è differenza tra un canale logico e uno fisico. È al momento del fatidico «ICONF» che si indica, tramite un apposito file di configurazione, quali link sono fisici e quali «semplicemente» logici. E il bello di tutto questo è che il sistema di sviluppo «deduce», dai collegamenti indicati nel file di configurazione appena citato, la tipologia della rete di transputer che stiamo usando. Confeziona così un unico file, contenente gli eseguibili per tutti i nodi interessati, da spedire al primo transputer. Sarà poi compito suo (e di altri eventuali transputer intermedi) far giungere attraverso i link fisici l'eseguibile a tutti i chip della rete (qui ADPnetwork non c'entra nulla ... ). Chiaramente avendo progettato il transputer ed il compilatore OCCAM ognuno in funzione dell'altro, la Inmos è riuscita ad ottenere con questo compilatore un'efficienza paragonabile a quella dell'Assembler di queste bestioline. Oltre a tutto questo, il sistema OCCAM Toolset è in pratica una piattaforma standard, aperta, che permette di collegare insieme programmi compilati nei vari linguaggi paralleli disponibili (C, Pascal, Fortran, ADA. ecc.) per il transputer. Più bello di così. ..
Hardware e software
Il software di base è contenuto in due raccoglitori ad anelli di cartone telato, di un vivace color rosso. Il primo contiene un piccolo manuale per l'installazione del software e 13 dischi da 5"1/4; di questi 12 sono quelli da utilizzare per l'installazione, mentre il tredicesimo contiene una release di un programma per la preparazione di software caricabile da EPROM. Il secondo contenitore contiene una guida di riferimento rapido ed il manuale vero e proprio, che è contenuto nel raccoglitore ad anelli, in cui sono riportate tutte le opzioni ed i codici d'errore del compilatore e di tutti i programmi di supporto. Inoltre vi sono documentate tutte le chiamate alle librerie fornite con il compilatore. Con il sistema vengono forniti altri 2 manuali che riguardano l'installazione della scheda e la sua configurazione. Esistono inoltre due libri molto ben fatti, che costituiscono un manuale di apprendimento per il linguaggio OCCAM ed un manuale di riferimento. Per quanto riguarda invece l'hardware, la scheda (da inserire in uno slot di un PC XT o AT) è praticamente vuota. Tranne un po' di elettronica presente ad una delle due estremità di cui parleremo tra breve. La scheda è infatti predisposta per ospitare fino a dieci moduli denominati TRAM (TRAnsputer Module) contenenti altrettanti transputer con la loro memoria in grado di comunicare tra loro attraverso la scheda. Il primo modulo fornito contiene un TBOO. Occupa però due slo1. quindi due posti, sulla scheda madre INMOS. In particolare impressiona il fatto che tale modulo non più grande di un pacchetto di sigarette, contiene un processore a 32 bit con coprocessore matematico in virgola mobile incorporato, 32 Kbyte di RAM statica e 2 Mbyte di RAM dinamica con relativa logica di controllo. Se a qualcuno di voi tutto ciò pare normale provi a pensare che una scheda di pari prestazioni e tecnologia (es. 2630 per Amiga con 6B030) occupa uno spazio 5-7 volte superiore, o che lo stesso hardware alla fine degli anni '70 occupava diversi metri cubi e pesava svariate centinaia di chili.
In dettaglio
Passiamo ora ad analizzare più da vicino l'hardware. La scheda madre del sistema è il modello"800B che dispone, come detto, di dieci slot per TRAM. Oltre alla logica utilizzata per interfacciare il PC tale scheda contiene un transputer a 16 bit T222 che oltre a svolgere funzioni di controllo dell'I/O, pilota direttamente un CHIP che permette di configurare via software le connessioni tra i transputer montati su diversi TRAM. La scheda dispone inoltre di un connetto re posteriore che permette, tramite apposito cavo, di connettere più schede 800B presenti sullo stesso PC o su PC differenti. Per poter montare più schede sullo stesso PC è previsto un dip-switch che permette di modificare l'indirizzo di memoria dove è mappata la scheda. I moduli TRAM consistono essenzialmente di un transputer e una certa quantità di memoria. Grazie all'interfaccia standard a 16 pin che permette la comunicazione tra diversi TRAM attraverso i link a 20 Mbit/sec di cui sono dotati i transputer, se i moduli TRAM sono montati sulla stessa piastra madre 800B la topologia delle connessioni può essere modificata via software tramite il CHIP che controlla le interconnessioni tra gli slot. L'approccio modulare realizzato attraverso i moduli TRAM ha permesso la creazione di uno standard di fatto a cui varie case produttrici di sistemi a transputer si sono adattate, con beneficio degli utenti finali che possono acquistare varie 800B e customizzarle a piacere per le proprie esigenze con le varie TRAM disponibili in commercio. Per avere un'idea della varietà di TRAM presenti sul mercato basta sapere che vi sono TRAM da B Kbyte a 8 Mbyte, vi sono TRAM che hanno interfacce Ethernet o schede grafiche da 1024 * 1024 punti. Sul modulo TRAM fornito con il sistema che, come detto, occupa 2 slo1. vi è un TBOO con due PAL che gestiscono il 8US dati e indirizzi multiplexato, pochi componenti discreti (in tecnologia surface mounting) 32 Kbyte di RAM statica (O wait state) in cui si possono memorizzare i dati più frequentemente utilizzati e 2 Mbyte di RAM dinamica (1 wait state) che sono la quantità di memoria minima necessa: ria per utilizzare il compilatore OCCAM.
Configurazione richiesta
Il sistema minimo necessario per poter lavorare è costituito da un PC XT compatibile dotato di 512 Kbyte e harddisk (il software non può girare solo con i dischetti) con almeno 6 Mbyte di spazio disponibile, che possono ridursi a 4 se si installa solo il minimo indispensabile per funzionare. Non è richiesta una grossa potenza elaborativa in quanto il compilatore gira sulla scheda a transputer e non interessa il processo re del PC se non per i trasferimenti di dati tra disco e scheda e viceversa. Dato l'intenso uso che il compilatore fa del disco è consigliabile però un PC AT con 286 o 386 con harddisk molto veloce con tempi di accesso dell'ordine di 1828 ms (o minore, perché no?) che permette di ridurre ad 1/4 i tempi di compilazione.
Metti un tigre (o anche più) nel motore
Passiamo ora all'installazione vera e propria. Per quanto riguarda il software i 12 dischi forniti sono tutti in forma compattata e l'installazione è totalmente automatica, basta solo inserire in sequenza i dischi e rispondere alle richieste riguardanti i moduli (software) da installare. Per quanto riguarda la scheda, se non vi sono esigenze particolari, si deve soltanto inserire il modulo TRAM da 2 Mbyte nello slot O (che a differenza di quanto ci si potrebbe aspettare non è all'estremità della scheda, ma grossomodo al centro). Nel compiere questa operazione bisogna fare attenzione che il triangolo in alto a destra del TRAM coincida con quello dello slot O che è in basso a sinistra. Inserendo a questo punto la scheda in uno slot del PC (la scheda pur avendo il pettine per slot a 16 bit si adatta automaticamente se inserito in uno a 8) l'installazione hardware è bell'e finita. Non resta che chiudere il tutto e accendere il PC per controllare che tutto funzioni a dovere, semplice no?
Utilizzazione
Accendendo il computer, la prima cosa che si nota è che ... non cambia assolutamente nulla. Ma di questo vi avevamo già awertito all'inizio. Infatti, lo ripetiamo, la scheda aspetta di essere utilizzata da apposito software che dovremo caricare da disco o produrre direttamente noi. Ma che strumenti abbiamo a disposizione per far funzionare (finalmente) il nostro oggetto? In pratica il solo compilatore OCCAM, Pascal, Fortran o C (per la precisione «parallel Fortran» o «parallel C») che però a sua volta è dotato di parecchie utility per rendere il lavoro del povero programmatore di transputer abbastanza facilitato. L'unica grossa mancanza è rappresentata dall'assenza di un editor specifico per l'OCCAM. Infatti questo linguaggio, a differenza ad esempio del C o del Pascal, fa dipendere la sua strutturazione non semplicemente da alcuni delimitatori come Begin ... End ma dalla posizione relativa delle istruzioni che compongono il programma. In pratica dalla indentazione stessa che in OCCAM non assume un significato puramente estetico bensì semantico. Come dire che un qualsiasi blocco termina quando un'istruzione non è più indentata come le precedenti «ma arretra» di due caratteri. Se state storcendo il naso non avete tutti i torti. Sapeste quante volte abbiamo dovuto ripetere una compilazione a seguito di errori di questo tipo. Se poi si incontra una indentazione dispari viene segnalato direttamente un errore durante la prima fase di compilazione. Tra una bestemmia e l'altra, però, abbiamo sentito parlare di alcuni tool (non forniti con il sistema) per scrivere il codice OCCAM in maniera un po' più umana (utilizzando delimitatori per i blocchi) e poi lasciare a questi appositi strumenti di precompilazione il compito di indentare opportunamente il programma prima di con pilarlo. Purtroppo questa non è la sede più opportuna per mostrarvi esempi OCCAM più significativi dell'ormai abusato «hello world», ma non è escluso che ritorneremo sull'argomento magari in un'apposita rubrica. Fortunatamente la documentazione INMOS fornita e quella opzionale sono abbastanza esaurienti e tali da permettere anche al «programmatore parallelo» alle prime armi (meglio se non primissime ... ) di districarsi abbastanza agevolmente nella (pulita) selva dei transputer.
Concludendo
Il kit di sviluppo proposto dalla INMOS è sicuramente molto interessante. Certo non per l'utenza, per così dire, normale, ma per quei programmatori superstiti (già ... razza in via d'estinzione) che richiedono potenze di calcolo ben superiori a quelle offerte dai normali personal attualmente in circolazione, con o senza coprocessore matematico. Se poi questi sistemi transputer riuscissero addirittura ad imporsi come standard «accelerator» potremmo anche vedere nascere applicazioni preconfezionate in grado di interagire con attrezzi di questo tipo. Dal canto nostro possiamo solo testimoniare che sviluppare in soli due mesi una scheda di rete da 20 Mbit/s basata su transputer è stato per noi quasi un gioco, grazie ai potenti mezzi messi a disposizione da questo toolset. E tanto dal punto di vista software quanto da quello hardware: i primi esperimenti sono stati effettuati simulando su una scheda a 4 transputer una rete di 4 macchine che dialogavano tra loro. Poi il primo prototipo, prima ancora di essere inserito nel bus di Amiga, l'abbiamo testato collegandolo agli altri 4 transputer di cui disponevano sul nostro sistema di sviluppo e simulando così una rete di 5 macchine. In pratica, prima ancora di installare la rete Amiga (che poi è stata portata allo SMAU, nel nostro stand) già sapevamo che funzionava perfettamente e potevamo valutare le principali performance. Tutto questo non è poco, credeteci.
Produttore: Inmos Limited 1000 Aztec West Almondsbury Bristol U.K.
Distributore: Celdis Spa - Divisione Componenti Via F.lli Gracchi, 36 20092 Cinisello Balsamo (MI)
Prezzo (lVA esclusa): TI.K. composto da Scheda madre IMS B008l, TRAM B404-3 comprendente un transputer T800-20, IMS S7088 Software Support, più un pacchetto a scelta tra: - ANSI C Toolset - OCCAM Toolset - Transputer Development System - Parallel Fortran - PASCAL L. 5.000.000
Acquistando un TlK entro il 31-12-'90 (offerta valida dall'1-10-'90) in regalo una Prototyping TRAM IMS B430-1O dotata di T2 Transputer System, 32 KByte di SRAM, Area millefori per la prototipizzazione, PLD (Programmable Logic Device).
Impaginato originale... Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui |