Matches in SemOpenAlex for { <https://semopenalex.org/work/W904513124> ?p ?o ?g. }
- W904513124 abstract "All major semiconductor companies are now shipping multi-cores. Phones, PCs, laptops, and mobile internet devices will all require software that can make effective use of these cores. Writing high-performance parallel software is difficult, time-consuming and error prone, increasing both time-to-market and cost. Software outlives hardware; it typically takes longer to develop new software than hardware, and legacy software tends to survive for a long time, during which the number of cores per system will increase. Development and maintenance productivity will be improved if parallelism and technical details are managed by the machine, while the programmer reasons about the application as a whole.
 
 Parallel software should be written using domain-specific high-level languages or extensions. These languages reveal implicit parallelism, which would be obscured by a sequential language such as C. When memory allocation and program control are managed by the compiler, the program's structure and data layout can be safely and reliably modified by high-level compiler transformations.
 
 One important application domain contains so-called stream programs, which are structured as independent kernels interacting only through one-way channels, called streams. Stream programming is not applicable to all programs, but it arises naturally in audio and video encode and decode, 3D graphics, and digital signal processing. This representation enables high-level transformations, including kernel unrolling and kernel fusion. 
 
 This thesis develops new compiler and run-time techniques for stream programming. The first part of the thesis is concerned with a statically scheduled stream compiler. It introduces a new static partitioning algorithm, which determines which kernels should be fused, in order to balance the loads on the processors and interconnects. A good partitioning algorithm is crucial if the compiler is to produce efficient code. The algorithm also takes account of downstream compiler passes---specifically software pipelining and buffer allocation---and it models the compiler's ability to fuse kernels. The latter is important because the compiler may not be able to fuse arbitrary collections of kernels.
 
 This thesis also introduces a static queue sizing algorithm. This algorithm is important when memory is distributed, especially when local stores are small. The algorithm takes account of latencies and variations in computation time, and is constrained by the sizes of the local memories.
 
 The second part of this thesis is concerned with dynamic scheduling of stream programs. First, it investigates the performance of known online, non-preemptive, non-clairvoyant dynamic schedulers. Second, it proposes two dynamic schedulers for stream programs. The first is specifically for one-dimensional stream programs. The second is more general: it does not need to be told the stream graph, but it has slightly larger overhead.
 
 This thesis also introduces some support tools related to stream programming. StarssCheck is a debugging tool, based on Valgrind, for the StarSs task-parallel programming language. It generates a warning whenever the program's behaviour contradicts a pragma annotation. Such behaviour could otherwise lead to exceptions or race conditions. StreamIt to OmpSs is a tool to convert a streaming program in the StreamIt language into a dynamically scheduled task based program using StarSs. Totes les empreses de semiconductors produeixen actualment multi-cores. Mòbils,PCs, portàtils, i dispositius mòbils d’Internet necessitaran programari quefaci servir eficientment aquests cores. Escriure programari paral·lel d’altrendiment és difícil, laboriós i propens a errors, incrementant tant el tempsde llançament al mercat com el cost. El programari té una vida més llarga queel maquinari; típicament pren més temps desenvolupar nou programi que noumaquinari, i el programari ja existent pot perdurar molt temps, durant el qualel nombre de cores dels sistemes incrementarà. La productivitat dedesenvolupament i manteniment millorarà si el paral·lelisme i els detallstècnics són gestionats per la màquina, mentre el programador raona sobre elconjunt de l’aplicació.El programari paral·lel hauria de ser escrit en llenguatges específics deldomini. Aquests llenguatges extrauen paral·lelisme implícit, el qual és ocultatper un llenguatge seqüencial com C. Quan l’assignació de memòria i lesestructures de control són gestionades pel compilador, l’estructura iorganització de dades del programi poden ser modificades de manera segura ifiable per les transformacions d’alt nivell del compilador.Un dels dominis de l’aplicació importants és el que consta dels programes destream; aquest programes són estructurats com a nuclis independents queinteractuen només a través de canals d’un sol sentit, anomenats streams. Laprogramació de streams no és aplicable a tots els programes, però sorgeix deforma natural en la codificació i descodificació d’àudio i vídeo, gràfics 3D, iprocessament de senyals digitals. Aquesta representació permet transformacionsd’alt nivell, fins i tot descomposició i fusió de nucli.Aquesta tesi desenvolupa noves tècniques de compilació i sistemes en tempsd’execució per a programació de streams. La primera part d’aquesta tesi esfocalitza amb un compilador de streams de planificació estàtica. Presenta unnou algorisme de partició estàtica, que determina quins nuclis han de serfusionats, per tal d’equilibrar la càrrega en els processadors i en lesinterconnexions. Un bon algorisme de particionat és fonamental per tal de queel compilador produeixi codi eficient. L’algorisme també té en compte elspassos de compilació subseqüents---específicament software pipelining il’arranjament de buffers---i modela la capacitat del compilador per fusionarnuclis. Aquesta tesi també presenta un algorisme estàtic de redimensionament de cues.Aquest algorisme és important quan la memòria és distribuïda, especialment quanles memòries locals són petites. L’algorisme té en compte latències ivariacions en els temps de càlcul, i considera el límit imposat per la mida deles memòries locals.La segona part d’aquesta tesi es centralitza en la planificació dinàmica deprogrames de streams. En primer lloc, investiga el rendiment dels planificadorsdinàmics online, non-preemptive i non-clairvoyant. En segon lloc, proposa dosplanificadors dinàmics per programes de stream. El primer és específicament pera programes de streams unidimensionals. El segon és més general: no necessitael graf de streams, però els overheads són una mica més grans.Aquesta tesi també presenta un conjunt d’eines de suport relacionades amb laprogramació de streams. StarssCheck és una eina de depuració, que és basa enValgrind, per StarSs, un llenguatge de programació paral·lela basat en tasques.Aquesta eina genera un avís cada vegada que el comportament del programa estàen contradicció amb una anotació pragma. Aquest comportament d’una altra manerapodria causar excepcions o situacions de competició. StreamIt to OmpSs és unaeina per convertir un programa de streams codificat en el llenguatge StreamIt aun programa de tasques en StarSs planificat de forma dinàmica." @default.
- W904513124 created "2016-06-24" @default.
- W904513124 creator A5047069371 @default.
- W904513124 date "2023-07-19" @default.
- W904513124 modified "2023-09-24" @default.
- W904513124 title "Running stream-like programs on heterogeneous multi-core systems" @default.
- W904513124 cites W129392720 @default.
- W904513124 cites W145355838 @default.
- W904513124 cites W1487190330 @default.
- W904513124 cites W1494930385 @default.
- W904513124 cites W1530971713 @default.
- W904513124 cites W1533763409 @default.
- W904513124 cites W1536852470 @default.
- W904513124 cites W1537634553 @default.
- W904513124 cites W1555915743 @default.
- W904513124 cites W1556229054 @default.
- W904513124 cites W1559060679 @default.
- W904513124 cites W1564519640 @default.
- W904513124 cites W1566995452 @default.
- W904513124 cites W1568192366 @default.
- W904513124 cites W1575008551 @default.
- W904513124 cites W1585473105 @default.
- W904513124 cites W1587952852 @default.
- W904513124 cites W1595885266 @default.
- W904513124 cites W1655997375 @default.
- W904513124 cites W166724137 @default.
- W904513124 cites W1823488227 @default.
- W904513124 cites W1890479029 @default.
- W904513124 cites W1903036498 @default.
- W904513124 cites W1958965543 @default.
- W904513124 cites W1966403367 @default.
- W904513124 cites W1967810725 @default.
- W904513124 cites W1972544179 @default.
- W904513124 cites W1982812416 @default.
- W904513124 cites W1983065054 @default.
- W904513124 cites W1983292127 @default.
- W904513124 cites W1995085071 @default.
- W904513124 cites W2004766113 @default.
- W904513124 cites W2010074783 @default.
- W904513124 cites W2019356799 @default.
- W904513124 cites W2025819261 @default.
- W904513124 cites W2026571096 @default.
- W904513124 cites W2029601347 @default.
- W904513124 cites W2031415642 @default.
- W904513124 cites W2036772106 @default.
- W904513124 cites W2038509324 @default.
- W904513124 cites W2043724035 @default.
- W904513124 cites W2046063196 @default.
- W904513124 cites W2051531384 @default.
- W904513124 cites W2057108708 @default.
- W904513124 cites W2057392949 @default.
- W904513124 cites W2065689629 @default.
- W904513124 cites W2075284083 @default.
- W904513124 cites W2083868341 @default.
- W904513124 cites W2084224084 @default.
- W904513124 cites W2085118703 @default.
- W904513124 cites W2088943630 @default.
- W904513124 cites W2089940054 @default.
- W904513124 cites W2091158003 @default.
- W904513124 cites W2095265034 @default.
- W904513124 cites W2097911714 @default.
- W904513124 cites W2101431901 @default.
- W904513124 cites W2101816662 @default.
- W904513124 cites W2102159907 @default.
- W904513124 cites W2104861744 @default.
- W904513124 cites W2104922219 @default.
- W904513124 cites W2105491397 @default.
- W904513124 cites W2106028863 @default.
- W904513124 cites W2109051991 @default.
- W904513124 cites W2111394443 @default.
- W904513124 cites W2111797597 @default.
- W904513124 cites W2112537029 @default.
- W904513124 cites W2113277707 @default.
- W904513124 cites W2113563476 @default.
- W904513124 cites W2114067856 @default.
- W904513124 cites W2114876342 @default.
- W904513124 cites W2115321789 @default.
- W904513124 cites W2115852795 @default.
- W904513124 cites W2118396891 @default.
- W904513124 cites W2121711096 @default.
- W904513124 cites W2121817468 @default.
- W904513124 cites W2121893797 @default.
- W904513124 cites W2127532866 @default.
- W904513124 cites W2134260566 @default.
- W904513124 cites W2134408405 @default.
- W904513124 cites W2134633067 @default.
- W904513124 cites W2138462400 @default.
- W904513124 cites W2140029418 @default.
- W904513124 cites W2140130374 @default.
- W904513124 cites W2145133893 @default.
- W904513124 cites W2145471566 @default.
- W904513124 cites W2146928461 @default.
- W904513124 cites W2147077996 @default.
- W904513124 cites W2147994838 @default.
- W904513124 cites W2149135813 @default.
- W904513124 cites W2150446509 @default.
- W904513124 cites W2150871235 @default.
- W904513124 cites W2151038512 @default.
- W904513124 cites W2151406013 @default.
- W904513124 cites W2151994818 @default.