651 research outputs found
A Survey of Pipelined Workflow Scheduling: Models and Algorithms
International audienceA large class of applications need to execute the same workflow on different data sets of identical size. Efficient execution of such applications necessitates intelligent distribution of the application components and tasks on a parallel machine, and the execution can be orchestrated by utilizing task-, data-, pipelined-, and/or replicated-parallelism. The scheduling problem that encompasses all of these techniques is called pipelined workflow scheduling, and it has been widely studied in the last decade. Multiple models and algorithms have flourished to tackle various programming paradigms, constraints, machine behaviors or optimization goals. This paper surveys the field by summing up and structuring known results and approaches
Recommended from our members
Accelerating Iterative Computations for Large-Scale Data Processing
Recent advances in sensing, storage, and networking technologies are creating massive amounts of data at an unprecedented scale and pace. Large-scale data processing is commonly leveraged to make sense of these data, which will enable companies, governments, and organizations, to make better decisions and bring convenience to our daily life. However, the massive amount of data involved makes it challenging to perform data processing in a timely manner. On the one hand, huge volumes of data might not even fit into the disk of a single machine. On the other hand, data mining and machine learning algorithms, which are usually involved in large-scale data processing, typically require time-consuming iterative computations. Therefore, it is imperative to efficiently perform iterative computations on large computer clusters or cloud using highly-parallel and shared-nothing distributed systems.
This research aims to explore new forms of iterative computations that reduce unnecessary computations so as to accelerate large-scale data processing in a distributed environment. We propose the iterative computation transformation for well-known data mining and machine learning algorithms, such as expectation-maximization, nonnegative matrix factorization, belief propagation, and graph algorithms (e.g., PageRank). These algorithms have been used in a wide range of application domains. First, we show how to accelerate expectation-maximization algorithms with frequent updates in a distributed environment. Then, we illustrate the way of efficiently scaling distributed nonnegative matrix factorization with block-wise updates. Next, our approach of scaling distributed belief propagation with prioritized block updates is presented. Last, we illustrate how to efficiently perform distributed incremental computation on evolving graphs.
We will elaborate how to implement these transformed iterative computations on existing distributed programming models such as the MapReduce-based model, as well as develop new scalable and efficient distributed programming models and frameworks when necessary. The goal of these supporting distributed frameworks is to lift the burden of the programmers in specifying transformation of iterative computations and communication mechanisms, and automatically optimize the execution of the computation. Our techniques are evaluated extensively to demonstrate their efficiency. While the techniques we propose are in the context of specific algorithms, they address the challenges commonly faced in many other algorithms
Scheduling with communication for multiprocessor computation
Multiprocessor scheduling houdt zich bezig met de planning van de uitvoering van computer-programma s
op een parallelle computer. Een computerprogramma kan worden gezien als een
collectie instructies die gegroepeerd zijn in taken. Een parallelle computer is een computer met
meerdere processoren die verbonden zijn door een communicatie-netwerk. Elke processor kan
taken van een computerprogramma uitvoeren.
Tijdens de uitvoering van een computerprogramma op een parallelle computer wordt elke
taak ´ e´ en maal uitgevoerd. In het algemeen kunnen de taken van een computerprogramma niet
in een willekeurige volgorde worden uitgevoerd: het resultaat van een taak kan nodig zijn
om een andere taak uit te voeren. Zulke taken worden data-afhankelijk genoemd. De data-afhankelijkheden
defini¨ eren de structuur van het computerprogramma: als taak u2 het resultaat
van taak u1 nodig heeft, dan kan u2 pas worden uitgevoerd nadat u1 is voltooid. Als er geen
data-afhankelijkheid bestaat tussen twee taken, dan kunnen ze in willekeurige volgorde of tege-lijkertijd
worden uitgevoerd.
Als twee data-afhankelijke taken u1 en u2 op verschillende processoren worden uitgevoerd,
dan moet het resultaat van u1 naar de processor die u2 uitvoert worden overgebracht. Dit transport
van informatie wordt communicatie genoemd. Het resultaat van u1 kan naar een andere processor
worden overgebracht door het sturen van berichten door het communicatie-netwerk.
Een schedule geeft voor elke taak aan welke processor hem uitvoert en op welk tijdstip. Het
doel van multiprocessor scheduling is het construeren van een schedule van zo kort mogelijke
duur, rekening houdend met de communicatie veroorzaakt door de data-afhankelijkheden tussen
de taken. De duur van een schedule wordt in grote mate bepaald door de hoeveelheid communi-catie
in het schedule: de duur van een schedule kan toenemen doordat een processor lange tijd
geen taken kan uitvoeren, omdat hij staat te wachten op het resultaat van een taak die op een
andere processor wordt uitgevoerd.
Omdat de wijze waarop processoren van parallelle computers communiceren verschilt per
computer, is het uiterst moeilijk om op effici¨ ente wijze goede schedules te construeren voor een
computerprogramma op een parallelle computer. Daarom wordt in het algemeen een model van
een parallelle computer gebruikt in plaats een echte parallelle computer. Zo n model wordt een
parallel berekeningsmodel genoemd. In een parallel berekeningsmodel kan men zich concen-treren
op die aspecten van communicatie die een grote invloed hebben op de kwaliteit van een
schedule. Dit geeft de mogelijkheid deze aspecten beter te begrijpen.
In dit proefschrift worden twee parallelle berekeningsmodellen beschouwd: het UCT model
en het LogP model. Het UCT model richt zich op het bestuderen van ´ e´ en aspect van commu-nicatie:
een tijdvertraging die nodig is om resultaten tussen processoren te transporteren. Het
LogP model is een model dat meerdere aspecten van communicatie in acht neemt: door middel
van een geschikt gekozen invulling van zijn parameters L, o, g en P kan het LogP model de
communicatie in vele parallelle computers modelleren.
Communicatie in het UCT model werkt als volgt. Als taak u2 het resultaat van taak u1 nodig
heeft en deze taken zijn op verschillende processoren uitgevoerd, dan moet er een vertraging van
tenminste ´ e´ en tijdstap zijn tussen de tijd waarop u1 wordt voltooid en de tijd waarop u2 start.
171?Deze vertraging is nodig om het resultaat van u1 naar de processor die u2 uitvoert te sturen. Als
u1 en u2 op dezelfde processor worden uitgevoerd, dan is het resultaat van u1 al op de juiste
processor beschikbaar en is er geen vertraging nodig. In dat geval kan u2 direct na u1 worden
uitgevoerd.
Communicatie in het LogP model is veel ingewikkelder. Beschouw wederom twee data-afhankelijke
taken u1 en u2 die op verschillende processoren worden uitgevoerd. Neem aan
dat het resultaat van u1 moet worden getransporteerd naar de processor die u2 uitvoert. In vele
gevallen kan het transporteren van het resultaat van een taak niet met ´ e´ en bericht, maar zijn
meerdere berichten nodig. Deze moeten naar de processor die u2 uitvoert worden gestuurd. Het
versturen van ´ e´ en bericht kost o tijdstappen op de processor die u1 uitvoert; het ontvangen ervan
kost o tijdstappen op de processor die u2 uitvoert. Daarnaast kan elke processor ten hoogste ´ e´ en
bericht versturen of ontvangen in elke g opeenvolgende tijdstappen en is er een vertraging van
precies L tijdstappen tussen het versturen en het ontvangen van een bericht.
In het eerste deel van dit proefschrift (hoofdstukken 3, 4, 5, 6 en 7) worden algoritmen be-schreven
die op effici¨ ente wijze schedules in het UCT model construeren. In hoofdstuk 4 wordt
een algoritme beschreven dat goede schedules construeert voor willekeurige computerprogram-ma s.
Voor computerprogramma s met een outforest-structuur construeert dit algoritme optimale
schedules. In hoofdstuk 5 beschrijven we algoritmen die goede schedules construeren voor com-puterprogramma s
met een inforest-structuur. De algoritmen die worden beschreven in hoofd-stukken
6 en 7 construeren optimale schedules voor computerprogramma s waarin het maximum
aantal paarsgewijs data-onafhankelijke taken klein is en voor computerprogramma s met een in-terval
order-structuur.
Het tweede deel van dit proefschrift (hoofdstukken 8, 9, 10 en 11) houdt zich bezig met
scheduling in het LogP model. In hoofdstukken 9 en 10 bewijzen we dat het construeren van
optimale schedules voor computerprogramma s met een zeer eenvoudige boomstructuur (send
graph-structuur of receive graph-structuur) waarschijnlijk niet op effici¨ ente wijze mogelijk is.
In deze hoofdstukken worden effici¨ ente algoritmen beschreven die goede (maar niet noodzake-lijk
optimale) schedules construeren voor computerprogramma s met een dergelijke structuur.
In hoofdstuk 11 worden decompositie-algoritmen gebruikt om op effici¨ ente wijze schedules te
construeren voor computerprogramma s met een algemene boomstructuur.
Het blijkt dat optimale schedules in het UCT model op effici¨ ente wijze kunnen worden ge-construeerd
als de structuur van de computerprogramma s eenvoudig is (bijvoorbeeld computer-programma s
met een boomstructuur). De eenvoudige aard van de communicatie in het UCT
model maakt dit mogelijk. Vandaar dat de complexiteit van scheduling in het UCT model met
name bepaald wordt door de structuur van de computerprogramma s. Daarentegen maakt de
communicatie het moeilijk om goede schedules in het LogP model te construeren, zelfs als de
structuur van de computerprogramma s zeer eenvoudig is (bijvoorbeeld computerprogramma s
met een send graph-structuur). Hieruit blijkt dat de complexiteit van scheduling in het LogP
model in grote mate wordt bepaald door de ingewikkelde vorm van communicatie in dit model.
17
Theory and design of portable parallel programs for heterogeneous computing systems and networks
A recurring problem with high-performance computing is that advanced architectures generally achieve only a small fraction of their peak performance on many portions of real applications sets. The Amdahl\u27s law corollary of this is that such architectures often spend most of their time on tasks (codes/algorithms and the data sets upon which they operate) for which they are unsuited. Heterogeneous Computing (HC) is needed in the mid 90\u27s and beyond due to ever increasing super-speed requirements and the number of projects with these requirements. HC is defined as a special form of parallel and distributed computing that performs computations using a single autonomous computer operating in both SIMD and MIMD modes, or using a number of connected autonomous computers. Physical implementation of a heterogeneous network or system is currently possible due to the existing technological advances in networking and supercomputing. Unfortunately, software solutions for heterogeneous computing are still in their infancy. Theoretical models, software tools, and intelligent resource-management schemes need to be developed to support heterogeneous computing efficiently. In this thesis, we present a heterogeneous model of computation which encapsulates all the essential parameters for designing efficient software and hardware for HC. We also study a portable parallel programming tool, called Cluster-M, which implements this model. Furthermore, we study and analyze the hardware and software requirements of HC and show that, Cluster-M satisfies the requirements of HC environments
Scheduling with processing set restrictions : a survey
2008-2009 > Academic research: refereed > Publication in refereed journalAccepted ManuscriptPublishe
- …