APE
acronimo di Array Processor with Emulator (lett. “processore vettoriale con emulatore”). Nome che identifica una famiglia di elaboratori elettronici paralleli, progettati e costruiti in Italia a partire dal 1985 da una collaborazione tra l'INFN (Istituto Nazionale di Fisica Nucleare) e diverse università italiane. Il primo elaboratore della famiglia, propriamente detto APE, è stato un elaboratore ad alte prestazioni dalle elevate capacità di calcolo puro, adatto a elaborare problemi numerici intrinsecamente paralleli e omogenei. In particolare, APE è nato come macchina dedicata a risolvere una classe ben determinata di problemi numerici, con un costo assai ridotto ma con prestazioni confrontabili a quelle di supercalcolatori commerciali. La classe di problemi la cui risoluzione ha motivato l'ideazione e la realizzazione di APE è quella delle simulazioni numeriche di teorie di gauge su reticolo e, in particolare, della cromodinamica quantistica su reticolo, la teoria di gauge che, nel limite continuo, si presume possa descrivere le interazioni forti tra particelle elementari. L'architettura originaria dell'elaboratore APE (1987) è costituita da 16 celle disposte in linea, ognuna delle quali costituita da un'unità di elaborazione in virgola mobile (floating point unit) e da un banco di memoria. Le celle sono collegate tra loro da una rete di commutazione “circolare”, in modo da permettere la comunicazione dei dati tra i diversi nodi computazionali. Lo schema architetturale parallelo della macchina APE è quello SIMD (Single Instruction Multiple Data) in cui le unità di elaborazione dei dati sono replicate mentre rimane unica la sequenza di operazioni (e l'elaboratore che le controlla). In tale maniera tutti i nodi computazionali eseguono simultaneamente e parallelamente la stessa operazione aritmetica su una molteplicità di dati pari al numero dei nodi stessi. L'elaboratore di controllo (controller) del flusso di istruzioni e delle operazioni su numeri interi è l'emulatore CERN/SLAC 3081/E integrato con un calcolatore di interfaccia con l'utente. La capacità di calcolo è di 1 Gflops (miliardi di operazioni in virgola mobile al secondo) e la memoria totale dei 16 nodi è di 256 Mbytes. Il linguaggio di programmazione utilizzato su APE, il TAO, è un linguaggio strutturato molto simile al FORTRAN, con istruzioni particolari per permettere l'implementazione di costrutti tipici del calcolo parallelo. Uno dei primi esempi di calcolo scientifico ottenuto con APE è il calcolo dello spettro di massa degli adroni in cromodinamica quantistica. La generazione successiva di elaboratori (1992), denominata APE 100 e con una potenza di calcolo di 100 Gflops, è caratterizzata da una topologia tridimensionale cubica dei nodi computazionali, architettura SIMD modulare (da 8 a 1024 nodi), 4 Mbytes di memoria per nodo e un controller per ogni 128 unità computazionali. L'architettura è intrinsecamente più versatile di quella originaria di APE, in maniera da poter allargare lo spettro di utilizzo delle applicazioni scientifiche affrontabili su questo tipo di calcolatore. Ulteriori passi in avanti sono stati fatti con l'APE 1000, capace di una potenza di calcolo complessiva pari a 1 Tflops (1000 miliardi di operazioni floating point al secondo), e l'APE Next, con una potenza di calcolo superiore ai 10 Tflops.