{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"institution":[{"id":[{"id":"https:\/\/ror.org\/03mb6wj31","id-type":"ROR","asserted-by":"publisher"},{"id":"https:\/\/www.isni.org\/000000041937028X","id-type":"ISNI","asserted-by":"publisher"},{"id":"https:\/\/www.wikidata.org\/entity\/Q1640731","id-type":"wikidata","asserted-by":"publisher"}],"name":"Universitat Polit\u00e8cnica de Catalunya","acronym":["UPC"]}],"indexed":{"date-parts":[[2026,7,30]],"date-time":"2026-07-30T09:28:07Z","timestamp":1785403687528,"version":"3.56.0"},"reference-count":0,"publisher":"Universitat Polit\u00e8cnica de Catalunya","license":[{"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"abstract":"<jats:p>This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I\/O intensive applications. Throughout this thesis, we propose programming model abstractions and mechanisms that target a twofold objective: from the one hand, improve the I\/O and total performance of applications on nowadays complex storage infrastructures. From the other hand, achieve such performance improvement without increasing the complexity of applications programming. The following paragraphs briefly summarize each of our contributions.\r\n\r\nFirst, towards exploiting compute-I\/O patterns of I\/O intensive applications and transparently improving I\/O and total performance, we propose a number of abstractions that we refer to as I\/O Awareness abstractions. An I\/O aware task-based programming model is able to separate the handling of I\/O and computations by supporting I\/O Tasks. The execution of such tasks can overlap with compute tasks execution. Moreover, we provide programming model support to improve I\/O performance by addressing the issue of I\/O congestion. This is achieved by using Storage Bandwidth Constraints to control the level of task parallelism. We support two types of such constraints: (i) Static storage bandwidth constraints that are manually set by application\r\ndevelopers. (ii) Auto-tunable constraints that are automatically set and tuned throughout the execution of application.\r\n\r\nSecond, in order to exploit the heterogeneity of modern storage systems to improve performance in a transparent manner, we propose a set of capabilities that we refer to as Storage heterogeneity Awareness. A storage-heterogeneity aware task-based programming model builds on the concepts and abstractions that are introduced in the first contribution to improve the I\/O performance of applications on heterogeneous storage systems. More specifically, such programming models support the following features: (i) abstracting the heterogeneity of the storage devices and exposing them as one hierarchical storage resource. (ii) supporting dedicated I\/O scheduling. (iii) Finally, we introduce a mechanism that automatically and periodically flushes obsolete data from higher storage layers to lower storage layers.\r\n\r\nThird, targeting increasing parallelism levels of applications, we propose a Hybrid Programming Model that combines task-based programming models and MPI. In this programming model, tasks are used to achieve coarse-grained parallelism on large-scale distributed infrastructures, whereas MPI is used to gain fine-grained parallelism by parallelizing tasks execution. Such a hybrid programming model offers the possibility to enable parallel I\/O and high-level I\/O libraries in tasks. We enable such a hybrid programming model by supporting Native MPI Tasks. These tasks are native to the programming model for two reasons: they execute task code as opposed to calling external MPI binaries or scripts. Also, the data transfers and input\/output handling is done in a completely transparent manner to application developers. Therefore, increasing parallelism levels while easing the design and programming of applications.\r\n\r\nFinally, to exploit the inherent parallelism opportunities in applications and overlap computation with I\/O, we propose an Eager mechanism for releasing data dependencies. Unlike the traditional approach for releasing dependencies, eagerly releasing data dependencies allows successor tasks to be released for execution as soon as their data dependencies are ready, without having to wait for predecessor task(s) to completely finish execution. In order to support the eager-release of data dependencies, we describe the following core modifications to the design of task-based programming models: (i) defining and managing data dependency relationships as parameter-aware dependencies (ii) a mechanism for notifying the programming model that an output data has been generated before the execution of the producer task ends.<\/jats:p>\n                <jats:p>Aquesta tesi contribueix des de la perspectiva dels models de programaci\u00f3 basats en tasques als esfor\u00e7os d\u2019optimitzar les aplicacions intensives de I\/O. Al llarg d'aquesta tesi, proposem abstraccions i mecanismes del model de programaci\u00f3 que persegueixen un doble objectiu: per una banda, millorar la I\/O i el rendiment total de les aplicacions a les complexes infraestructures d'emmagatzematge de l'actualitat. D'altra banda, aconsegueixi aquesta millora del rendiment sense augmentar la complexitat de la programaci\u00f3 d'aplicacions. Els par\u00e0grafs seg\u00fcents resumeixen cadascuna de les nostres contribucions. En primer lloc, proposem una s\u00e8rie d'abstraccions a qu\u00e8 ens referim com a abstraccions de consci\u00e8ncia de I\/O. Un model de programaci\u00f3 basat en tasques amb reconeixement d'I\/O pot separar el maneig d'I\/O i els c\u00e0lculs en admetre Tasques d'I\/O. L'execuci\u00f3 d'aquestes tasques es pot superposar amb l'execuci\u00f3 de tasques de c\u00e0lcul. A m\u00e9s, proporcionem suport de model de programaci\u00f3 per millorar el rendiment d'I\/O en abordar el problema de la congesti\u00f3 d'I\/O. Aix\u00f2 s'aconsegueix mitjan\u00e7ant l'\u00fas de restriccions d'amplada de banda d'emmagatzematge per controlar el nivell de paral\u00b7lelisme de tasques. Admetem dos tipus d'aquestes restriccions: est\u00e0tic i autoajustable. En segon lloc, proposem un conjunt de capacitats a qu\u00e8 ens referim com a Consci\u00e8ncia d'heterogene\u00eftat d'emmagatzematge. Un model de programaci\u00f3 basat en tasques conscient de l'heterogene\u00eftat de l'emmagatzematge es basa en els conceptes i les abstraccions que s'introdueixen en la primera contribuci\u00f3 per millorar el rendiment d'I\/O de les aplicacions en sistemes d'emmagatzematge heterogenis. M\u00e9s espec\u00edficament, aquests models de programaci\u00f3 admeten les caracter\u00edstiques seg\u00fcents: (i) abstreure l'heterogene\u00eftat dels dispositius d'emmagatzematge i exposar-los com a recurs d'emmagatzematge jer\u00e0rquic. (ii) admetre la programaci\u00f3 d'I\/O dedicada. (iii) Finalment, presentem un mecanisme que descarrega autom\u00e0ticament i peri\u00f2dicament les dades obsoletes de les capes d'emmagatzematge superiors a les capes d'emmagatzematge inferiors. En tercer lloc, proposem un model de programaci\u00f3 h\u00edbrid que combina models de programaci\u00f3 basats en tasques i MPI. En aquest model de programaci\u00f3, les tasques s'utilitzen per aconseguir un paral\u00b7lelisme de gra gruixut en infraestructures distribu\u00efdes a gran escala, mentre que MPI es fa servir per obtenir un paral\u00b7lelisme de gra fi en paral\u00b7lelitzar l'execuci\u00f3 de tasques. Un model d'aquest tipus de programaci\u00f3 h\u00edbrid ofereix la possibilitat d'habilitar I\/O paral\u00b7leles i biblioteques d'I\/O d'alt nivell en tasques. Habilitem un model de programaci\u00f3 h\u00edbrid d'aquest tipus en admetre tasques MPI natives que executen codi de tasca en lloc de trucar a binaris o scripts MPI externs. A m\u00e9s, la transfer\u00e8ncia de dades i el maneig d\u2019entrada \/ sortida es realitza d\u2019una manera completament transparent per als desenvolupadors d\u2019aplicacions. Per tant, augmenta els nivells de paral\u00b7lelisme alhora que se'n facilita el disseny i la programaci\u00f3 d'aplicacions. Finalment proposem un mecanisme Eager per alliberar depend\u00e8ncies de dades. A difer\u00e8ncia de l'enfocament tradicional per alliberar depend\u00e8ncies, alliberar amb entusiasme les depend\u00e8ncies de dades permet que les tasques successores s'alliberin per a la seva execuci\u00f3 tan aviat com les depend\u00e8ncies de dades estiguin llestes, sense haver d'esperar que les tasques predecessores acabin completament l'execuci\u00f3. Per tal de donar suport a l'alliberament ansi\u00f3s de les depend\u00e8ncies de dades, descrivim les seg\u00fcents modificacions centrals al disseny de models de programaci\u00f3 basats en tasques: (i) definir i administrar les relacions de depend\u00e8ncia de dades com a depend\u00e8ncies conscients de par\u00e0metres (ii ) un mecanisme per notificar la model de programaci\u00f3 que s'ha generat una dada de sortida abans que finalitzi l'execuci\u00f3 de la tasca de productor.<\/jats:p>","DOI":"10.5821\/dissertation-2117-363913","type":"dissertation","created":{"date-parts":[[2023,7,19]],"date-time":"2023-07-19T01:44:54Z","timestamp":1689731094000},"approved":{"date-parts":[[2021,1,28]]},"source":"Crossref","is-referenced-by-count":0,"title":["Programming model abstractions for optimizing I\/O intensive applications"],"prefix":"10.5821","author":[{"given":"Hatem Mohamed Abdelfattah Eid","family":"Elshazly","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"3865","container-title":[],"original-title":[],"contributor":[{"sequence":"additional","affiliation":[],"role":[null]}],"deposited":{"date-parts":[[2026,1,25]],"date-time":"2026-01-25T06:30:42Z","timestamp":1769322642000},"score":1,"resource":{"primary":{"URL":"https:\/\/hdl.handle.net\/2117\/363913"}},"subtitle":[],"editor":[{"given":"Rosa Maria","family":"Badia Sala","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"editor"}]}],"short-title":[],"issued":{"date-parts":[[null]]},"references-count":0,"URL":"https:\/\/doi.org\/10.5821\/dissertation-2117-363913","relation":{},"subject":[]}}