Implementació en HDL d'un arbre binari de cerca auto-balancejat
View/Open
Cita com:
hdl:2117/109308
CovenanteeBarcelona Supercomputing Center
Document typeMaster thesis (pre-Bologna period)
Date2017-06-27
Rights accessOpen Access
All rights reserved. This work is protected by the corresponding intellectual and industrial
property rights. Without prejudice to any existing legal exemptions, reproduction, distribution, public
communication or transformation of this work are prohibited without permission of the copyright holder
Abstract
Amb la proliferació de les arquitectures multi-core i many-core, s’han emprat molts esforços en l’especificació i la
implementació de nous models de programació, que facilitessin als desenvolupadors de programari la capacitat
d’explotació de paral·lelisme en aquestes noves arquitectures; és a a dir, la capacitat que diversos processadors
executin parts d’un programa simultàniament per tal de resoldre un determinat problema de còmput amb menys
temps.
Un d’aquests models de programació en paral·lel és l’OmpSs1
. Aquest model de programació es basa en la
definició de tasques de còmput, fragments de programa que poden executar-se en paral·lel a d’altres, i les seves
respectives dependències de dades en forma de dades d’entrada i dades de sortida o generades. D’aquesta
manera, las diverses tasques es poden anar executant fora d’ordre, sempre i quan les seves dependències de
dades estiguin resoltes.
Una problemàtica molt habitual en aquests models de programació cau en el fet que quan les tasques són
molt fines, la planificació i gestió de tasques consumeix una quantitat de recursos i de temps d’execució que
penalitza el rendiment final de l’aplicació. Com a solució a aquest problema, es va idear la creació de Picos,
una implementació via maquinari del motor d’execució del model de programació OmpSs.
Tal i com s’explica en els articles [1, 2], es pot veure Picos com un co-processador que s’executa en una
FPGA, que rep informació sobre la creació de noves tasques, amb les seves dependències i de la finalització
d’aquestes. Amb aquesta informació va planificant i organitzant les tasques pendents d’execució i indica quina
o quines tasques es troben ja preparades per a la seva execució. A la figura 1.1 a la pàgina següent es pot
veure un exemple de la seva estructura hardware.
Un dels seus components és la memòria de dependències o DM. Aquesta memòria registra les adreces de
dependències; és a dir, adreces de memòria que són generades per una tasca i que són consultades per altres
tasques. Aquesta memòria està actualment implementada con una taula de dispersió o hash table 8-associativa,
i presenta els següents problemes:
• No utilització de tota la capacitat de memòria disponible. Degut a la col·lisions provocades per a la funció
de dispersió o hash.
• Temps d’espera excessius degut a stalls. Això està provocat pel problema anterior ja que quan una tasca no es pot inserir en el sistema de la DM degut a una col·lisió, s’ha d’aturar Picos i s’ha d’esperar a que es
buidi.
Per mitigar aquests problemes, es pretén la substitució de la DM actual per un arbre binari de cerca autobalancejat.
D’a- questa manera s’empraria sempre tota la capacitat de memòria i es reduirien el nombre de
cicles perduts per les aturades del sistema.
Així doncs, l’objectiu d’aquest projecte que se us presenta consisteix en la implementació d’un arbre binari
de cerca auto- balancejat en un llenguatge de descripció de maquinari per a re-emplaçar la memòria de
dependències de Picos, un runtime per maquinari del model de programació OmpSs desenvolupat entre el Barcelona
Supercomputing Center i el Departament d’Arquitectura de Computadors de la Universitat Politècnica de
Barcelona.
DegreeENGINYERIA INFORMÀTICA (Pla 2003)
Collections
Files | Description | Size | Format | View |
---|---|---|---|---|
129444.pdf | 1,547Mb | View/Open |