Dissertation/ Thesis
A dependency-aware parallel programming model
| Τίτλος: | A dependency-aware parallel programming model |
|---|---|
| Συγγραφείς: | Pérez Cáncer, Josep Maria |
| Συνεισφορές: | University/Department: Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors |
| Thesis Advisors: | Badia Sala, Rosa M. (Rosa Maria), Labarta Mancho, Jesús |
| Πηγή: | TDX (Tesis Doctorals en Xarxa) |
| Στοιχεία εκδότη: | Universitat Politècnica de Catalunya, 2015. |
| Έτος έκδοσης: | 2015 |
| Φυσική περιγραφή: | 309 p. |
| Original Identifier: | B 9962-2015 |
| Περιγραφή: | Designing parallel codes is hard. One of the most important roadblocks to parallel programming is the presence of data dependencies. These restrict parallelism and, in general, to work them around requires complex analysis and leads to convoluted solutions that decrease the quality of the code. This thesis proposes a solution to parallel programming that incorporates data dependencies into the model. The programming model can handle that information and to dynamically find parallelism that otherwise would be hard to find. This approach improves both programmability and parallelism, and thus performance. While this problem has already been solved in OpenMP 4 at the time of this publication, this research begun before the problem was even being considered for OpenMP 3. In fact, some of the contributions of this thesis have had an influence on the approach taken in OpenMP 4. However, the contributions go beyond that and cover aspects that have not been considered yet in OpenMP 4. The approach we propose is based on function-level dependencies across disjoint blocks of contiguous memory. While finding dependencies under those constraints is simple, it is much harder to do so over strided and possibly partially overlapping sets of data. This thesis also proposes a solution to this problem. By doing so, we increase the range of applicability of the original solution and increase the span of applicability of the programming model. OpenMP4 does not currently cover this aspect. Finally, we present a solution to take advantage of the performance characteristics of Non-Uniform Memory Access architectures. Our proposal is at the programming model level and does not require changes in the code. It automatically distributes the data and does not rely on data migration nor replication. Instead, it is based exclusively on scheduling the computations. While this process is automatic, it can be tuned through minor changes in the code that do not require any change in the programming model. Throughout the thesis, we demonstrate the effectiveness of the proposal through benchmarks that are either hard to program using other paradigms or that have different solutions. In most cases, our solutions perform either on par or better than already existing solutions. This includes the implementations available in well-known high-performance parallel libraries. |
| Description (Translated): | Dissenyar codis paral·lels es complex. Un dels principals esculls a l'hora de programar aplicacions paral·leles és la presència de dependències. Aquestes constrenyen el paral·lelisme, i en general, per evitar-les es requereix realitzar anàlisis complicades que donen lloc a solucions complexes que redueixen la qualitat del codi. Aquesta tesi proposa una solució a la programació paral·lela que incorpora al model les dependències de dades. El model de programació és capaç d'utilitzar aquesta informació per a trobar paral·lelisme que altrament seria molt difícil de detectar i d'extreure. Aquest enfoc augmenta la programabilitat i el paral·lelisme, i per tant també el rendiment. Tot i que al moment de la publicació d'aquesta tesi, el problema ja ha estat resolt a OpenMP 4, la recerca d'aquesta tesi va començar abans de que el problema s'hagués plantejat en l'àmbit d'OpenMP 3. De fet, algunes de les contribucions de la tesi han influït en la solució emprada a OpenMP 4. Tanmateix, les contribucions van més enllà i cobreixen aspectes que encara no han estat considerats a OpenMP 4. La proposta es basa en dependències a nivell de funció entre blocs de memòria continus i sense intersecció. Tot i que trobar dependències sota aquestes condicions és senzill, fer-ho sobre dades no contínues amb possibles interseccions parcials és molt més complex. Aquesta tesi també proposa una solució a aquest problema. Fent això, es millora el rang d'aplicació de la solució original i per tant el del model de programació. Aquest és un dels aspectes que encara no es contemplen a OpenMP 4. Finalment, es presenta una solució que té en compte les característiques de rendiment de les arquitectures NUMA (Accés No Uniforme a la Memòria). La proposta es planteja a nivell del model de programació i no precisa de canvis al codi ja que les dades es distribueixen automàticament. En lloc de basar-se en la migració i la replicació de les dades, es basa exclusivament en la planificació de l'execució de les computacions. Tot i que aquest procés és automàtic, es pot afinar mitjançant petits canvis en el codi que no arriben a alterar el model de programació. Al llarg d'aquesta tesi es demostra la efectivitat de les propostes a través de bancs de proves que son difícils de programar amb altres paradigmes o que tenen solucions diferents. A la majoria dels casos les nostres solucions tenen un rendiment similar o millor que les solucions preexistents, que inclouen implementacions en ben reconegues biblioteques paral·leles d'alt rendiment. DOCTORAT EN ARQUITECTURA I TECNOLOGIA DE COMPUTADORS (Pla 1998) |
| Τύπος εγγράφου: | Dissertation/Thesis |
| Περιγραφή αρχείου: | application/pdf |
| Γλώσσα: | English |
| DOI: | 10.5821/dissertation-2117-95636 |
| Σύνδεσμος πρόσβασης: | http://hdl.handle.net/10803/286286 https://dx.doi.org/10.5821/dissertation-2117-95636 |
| Rights: | L'accés als continguts d'aquesta tesi queda condicionat a l'acceptació de les condicions d'ús establertes per la següent llicència Creative Commons: http://creativecommons.org/licenses/by-nc-nd/3.0/es/ |
| Αριθμός Καταχώρησης: | edstdx.10803.286286 |
| Βάση Δεδομένων: | TDX |
| FullText | Text: Availability: 0 CustomLinks: – Url: http://hdl.handle.net/10803/286286# Name: EDS - TDX (ns324271) Category: fullText Text: View record in TDX |
|---|---|
| Header | DbId: edstdx DbLabel: TDX An: edstdx.10803.286286 RelevancyScore: 1302 AccessLevel: 3 PubType: Dissertation/ Thesis PubTypeId: dissertation PreciseRelevancyScore: 1302.44470214844 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: A dependency-aware parallel programming model – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Pérez+Cáncer%2C+Josep+Maria%22">Pérez Cáncer, Josep Maria</searchLink> – Name: Author Label: Contributors Group: Au Data: University/Department: Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors – Name: Author Label: Thesis Advisors Group: Au Data: Badia Sala, Rosa M. (Rosa Maria)<br />Labarta Mancho, Jesús – Name: TitleSource Label: Source Group: Src Data: TDX (Tesis Doctorals en Xarxa) – Name: Publisher Label: Publisher Information Group: PubInfo Data: Universitat Politècnica de Catalunya, 2015. – Name: DatePubCY Label: Publication Year Group: Date Data: 2015 – Name: PhysDesc Label: Physical Description Group: PhysDesc Data: 309 p. – Name: AN Label: Original Identifier Group: ID Data: B 9962-2015 – Name: Abstract Label: Description Group: Ab Data: Designing parallel codes is hard. One of the most important roadblocks to parallel programming is the presence of data dependencies. These restrict parallelism and, in general, to work them around requires complex analysis and leads to convoluted solutions that decrease the quality of the code. This thesis proposes a solution to parallel programming that incorporates data dependencies into the model. The programming model can handle that information and to dynamically find parallelism that otherwise would be hard to find. This approach improves both programmability and parallelism, and thus performance. While this problem has already been solved in OpenMP 4 at the time of this publication, this research begun before the problem was even being considered for OpenMP 3. In fact, some of the contributions of this thesis have had an influence on the approach taken in OpenMP 4. However, the contributions go beyond that and cover aspects that have not been considered yet in OpenMP 4. The approach we propose is based on function-level dependencies across disjoint blocks of contiguous memory. While finding dependencies under those constraints is simple, it is much harder to do so over strided and possibly partially overlapping sets of data. This thesis also proposes a solution to this problem. By doing so, we increase the range of applicability of the original solution and increase the span of applicability of the programming model. OpenMP4 does not currently cover this aspect. Finally, we present a solution to take advantage of the performance characteristics of Non-Uniform Memory Access architectures. Our proposal is at the programming model level and does not require changes in the code. It automatically distributes the data and does not rely on data migration nor replication. Instead, it is based exclusively on scheduling the computations. While this process is automatic, it can be tuned through minor changes in the code that do not require any change in the programming model. Throughout the thesis, we demonstrate the effectiveness of the proposal through benchmarks that are either hard to program using other paradigms or that have different solutions. In most cases, our solutions perform either on par or better than already existing solutions. This includes the implementations available in well-known high-performance parallel libraries. – Name: Abstract Label: Description (Translated) Group: Ab Data: Dissenyar codis paral·lels es complex. Un dels principals esculls a l'hora de programar aplicacions paral·leles és la presència de dependències. Aquestes constrenyen el paral·lelisme, i en general, per evitar-les es requereix realitzar anàlisis complicades que donen lloc a solucions complexes que redueixen la qualitat del codi. Aquesta tesi proposa una solució a la programació paral·lela que incorpora al model les dependències de dades. El model de programació és capaç d'utilitzar aquesta informació per a trobar paral·lelisme que altrament seria molt difícil de detectar i d'extreure. Aquest enfoc augmenta la programabilitat i el paral·lelisme, i per tant també el rendiment. Tot i que al moment de la publicació d'aquesta tesi, el problema ja ha estat resolt a OpenMP 4, la recerca d'aquesta tesi va començar abans de que el problema s'hagués plantejat en l'àmbit d'OpenMP 3. De fet, algunes de les contribucions de la tesi han influït en la solució emprada a OpenMP 4. Tanmateix, les contribucions van més enllà i cobreixen aspectes que encara no han estat considerats a OpenMP 4. La proposta es basa en dependències a nivell de funció entre blocs de memòria continus i sense intersecció. Tot i que trobar dependències sota aquestes condicions és senzill, fer-ho sobre dades no contínues amb possibles interseccions parcials és molt més complex. Aquesta tesi també proposa una solució a aquest problema. Fent això, es millora el rang d'aplicació de la solució original i per tant el del model de programació. Aquest és un dels aspectes que encara no es contemplen a OpenMP 4. Finalment, es presenta una solució que té en compte les característiques de rendiment de les arquitectures NUMA (Accés No Uniforme a la Memòria). La proposta es planteja a nivell del model de programació i no precisa de canvis al codi ja que les dades es distribueixen automàticament. En lloc de basar-se en la migració i la replicació de les dades, es basa exclusivament en la planificació de l'execució de les computacions. Tot i que aquest procés és automàtic, es pot afinar mitjançant petits canvis en el codi que no arriben a alterar el model de programació. Al llarg d'aquesta tesi es demostra la efectivitat de les propostes a través de bancs de proves que son difícils de programar amb altres paradigmes o que tenen solucions diferents. A la majoria dels casos les nostres solucions tenen un rendiment similar o millor que les solucions preexistents, que inclouen implementacions en ben reconegues biblioteques paral·leles d'alt rendiment.<br />DOCTORAT EN ARQUITECTURA I TECNOLOGIA DE COMPUTADORS (Pla 1998) – Name: TypeDocument Label: Document Type Group: TypDoc Data: Dissertation/Thesis – Name: Format Label: File Description Group: SrcInfo Data: application/pdf – Name: Language Label: Language Group: Lang Data: English – Name: DOI Label: DOI Group: ID Data: 10.5821/dissertation-2117-95636 – Name: URL Label: Access URL Group: URL Data: <link linkTarget="URL" linkTerm="http://hdl.handle.net/10803/286286" linkWindow="_blank">http://hdl.handle.net/10803/286286</link><br /><link linkTarget="URL" linkTerm="https://dx.doi.org/10.5821/dissertation-2117-95636" linkWindow="_blank">https://dx.doi.org/10.5821/dissertation-2117-95636</link> – Name: Copyright Label: Rights Group: Cpyrght Data: L'accés als continguts d'aquesta tesi queda condicionat a l'acceptació de les condicions d'ús establertes per la següent llicència Creative Commons: http://creativecommons.org/licenses/by-nc-nd/3.0/es/ – Name: AN Label: Accession Number Group: ID Data: edstdx.10803.286286 |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edstdx&AN=edstdx.10803.286286 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.5821/dissertation-2117-95636 Languages: – Text: English PhysicalDescription: Pagination: PageCount: 309 Titles: – TitleFull: A dependency-aware parallel programming model Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Pérez Cáncer, Josep Maria IsPartOfRelationships: – BibEntity: Dates: – D: 11 M: 02 Type: published Y: 2015 |
| ResultId | 1 |