Introduzione
CellBE Architecture
Software
Development Kit 3.1 libraries
Cell Broadband Engine Standards
In questa fase sono stati presi in considerazione gli attuali compilatori per processoreCellBE oltre al già presente GNU tool chain. In particolare è stata posta attenzione alla ricerca di un compilatore auto-parallelizzante che, ricevendo in ingresso un codice di calcolo sequenziale, ne estragga il parallelismo e scheduli l'esecuzione sulle risorse di calcolo, di memorizzazione e comunicazione del CellBE. In tale direzione si è esaminato il progetto CellSuperscalar, sviluppato presso il BSC di Barcellona, in cui il codice C sequenziale, opportunamente modificato con direttive di parallelizzazione, viene eseguito nel PPE e i vari task vengono schedulati dinamicamente su diversi SPE in base ad un'analisi di dipendenza eseguita a run-time, tentando di minimizzare il tempo complessivo di esecuzione e l'overhead dovuto al trasferimento dati. Successivamente è stato preso in considerazione il compilatore IBM Octopiler che, a partire da un singolo file sorgente, genera più eseguibili binari per l'unità PPE e i vari SPE con l'aggiunta di varie metodiche di paralellizzazione e vettorializzazione del codice (SIMDization) al fine di ottenere un codice eseguibile fortemente ottimizzato.
Barcelona Supercomputing Center - Cell SuperScalar compiler v2.1 (PDF)
IBM Octopiler - Compiler Technology for Scalable Architectures (PDF)
In questa fase sono state analizzate le primitive di trasferimento dati, di comunicazione e di sincronizzazione a disposizione nel RTE del CellBE. Successivamente sono state selezionate, codificate e standardizzate le chiamate di sistema per il trasferimento dati tra PPE e SPE o anche tra singoli SPE e per la sincronizzazione di due o più processi in esecuzione su SPE differenti. La modellazione del processore è stata effettuata considerando le diverse risorse che compongono il CellBE tra le quali le unità di calcolo, di comunicazione e di memorizzazione e mettendo in evidenza le funzioni di comunicazione e di sincronizzazione. Infine è stato valutato il costo corrispondente alle operazioni di calcolo, trasferimento dati e di sincronizzazione tramite specifici test sviluppati in codice C ed eseguiti nell'ambiente di simulazione sopra descritto. Di seguito sono presenti i documenti elaborati per l'analisi e la modellazione del CellBE e i codici sorgenti utilizzati per i test.
Modalità interazione PPE - SPE (PDF)
Modello architetturale e prestazionale Cell Broadband Engine (PDF)
IBM Systems Information Center : System Software -> Cell Broadband Engine Solution
Cell Broadband Engine Architecture (pdf)
Cell Broadband Engine Overview (pdf)
Slides introduttive ad architettura Cell (pdf)
developerWorks : Cell Broadband Engine resource center
Software Development Kit 3.1 - (Web)
SDK 3.1 Installation Guide - (Web, PDF)
SDK 3.1 Integrated Development Environment User’s Guide - (Web, PDF)
SDK 3.1 Performance Tools Reference - (Web, PDF)
SDK 3.1 Programmer’s Guide - (Web, PDF)
SDK 3.1 Programming Tutorial - (Web, PDF)
Cell Broadband Engine Programming Handbook (including PowerXCell 8i processor) - (Web, PDF)
Programming The Cell Broadband Engine : Examples and Best Practices - (PDF)
Accelerated Library Framework (ALF) Programmer's Guide and API Reference - (Web, PDF)
Basic Linear Algebra Subprograms (BLAS) Programmer's Guide and API Reference - (Web, PDF)
Data Communication and Synchronization Library (DACS) Programmer's Guide and API Reference - (Web, PDF)
Fast Fourier Transform Library Programmer's Guide and API Reference - (Web, PDF)
Linear Algebra PACKage Programmer’s Guide and API Reference - (Web, PDF)
SIMD Math Library API Reference - (Web, PDF)
SPE Runtime Management Library 2.3 - (Web, PDF)
SPE Runtime Extensions Library 3.1 - (Web, PDF)
Nota : la lista completa delle librerie a disposizione è riportata nella pagina Docs del Cell Broadband Engine Resource Center.
C/C++ Language Extensions for Cell Broadband Engine Architecture - (PDF)
Cell Broadband Engine Linux Reference Implementation ABI Specification - (PDF)
SPU Application Binary Interface Specification - (PDF)
SPU Assembly Language Specification - (PDF)
Benchmark DMA (IBM SDK) - (tar) Benchmark per la misurazione delle prestazioni nei trasferimenti DMA interprocessore
Fast Matrix Multiplication on Cell BE - (Web, tar) Algoritmo di moltiplicazione di matrici sviluppato su Cell BE
SPE GFlops Test - (How to, test1, test2) Semplici codici di test per calcolo floating-point SIMD negli SPE
IBM Redbook Sourcecode - (Web) Codici sorgenti IBM
Codici sorgenti per la gestione delle primitive di sincronizzazione - (Web) ...in aggiornamento...
IBM BladeCenter QS21 - (Web, PDF) Documentazione tecnica nodi Cell di CRESCO
IBM BladeCenter QS21 hardware performance glossary - (Web)