Progetto Cresco: Linea Attività SP1.4 in collaborazione con Ylichron

 

Ylichron - Cell Broadband Engine

 

1.  Creazione del know-how di dettaglio sul processore Cell Broadband Engine

In questa prima fase del progetto è stato acquisito il know-how relativo al processore CellBE studiando l'ambiente HW/SW di programmazione del processore. In particolare ciò è stato fatto utilizzando l'ambiente di simulazione messo a disposizione nel SDK 2.1, i compilatori GNU gcc e IBM XL C/C++ per PPE e SPU e i codici di esempio forniti da IBM. E' stata inoltre acquisita tutta la documentazione relativa all'ambiente di programmazione, a quello di simulazione e la documentazione sull'architettura del processore e sui relativi ISA.
Attualmente l'ambiente SDK 2.1 non è più disponibile e viene proposta la versione 3.1 che presenta notevoli migliorie e un set di tool e librerie specifiche per l'architettura CellBE.
I nodi Cell del sistema di calcolo di CRESCO utilizzano la versione SDK 3.0
Di seguito riportiamo alcuni link e documenti per un'introduzione all'architettura CellBE.

 

  Introduzione CellBE Architecture

  Software Development Kit 3.1

  Software Development Kit 3.1 libraries

  Cell Broadband Engine Standards

  Codici sorgenti

  Hardware Cresco sezione Cell

 

2.  Ricerca e studio di compilatori per processore CellBE

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)

Cell Superscalar webpage

IBM Octopiler - Compiler Technology for Scalable Architectures  (PDF)

IBM Octopiler webpage

 


3. Definizione delle modalità di interazione tra PPE, SPE e relativi spazi di memorizzazione e modellazione del processore CellBE

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)

 


 

Introduzione

 

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

PowerPC Architecture Book  (pdf)   ppcbook1   ppcbook2   ppcbook3

Back to top



Software Development Kit (SDK) 3.1

 

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)

Back to top

 

Software Development Kit (SDK) 3.1 libraries

 

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.

Back to top

 

Cell Broadband Engine Standards

 

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)

Back to top

 

Codici sorgenti

 

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...

 

Back to top

 

Hardware Cresco sezione Cell

 

IBM BladeCenter QS21  -  (Web, PDF)    Documentazione tecnica nodi Cell di CRESCO

IBM BladeCenter QS21 hardware performance glossary  -  (Web)

 

Back to top