Analysis of synchronizations in greedy-scheduled executions and applications to efficient generation of pseudorandom numbers in parallel

Nous présentons deux contributions dans le domaine de la programmation parallèle. La première est théorique : nous introduisons l’analyse SIPS, une approche nouvelle pour dénombrer le nombre d’opérations de synchronisation durant l’exécution d’un algorithme parallèle ordonnancé par vol de travail. B...

ver descrição completa

Detalhes bibliográficos
Autor: Mor, Stefano Drimon Kurz
Formato: tesis doctoral
Estado:Versión publicada
Fecha de publicación:2015
País:Brasil
Recursos:Universidade Federal do Rio Grande do Sul (UFRGS)
Repositorio:Biblioteca Digital de Teses e Dissertações da UFRGS
Idioma:inglés
OAI Identifier:oai:www.lume.ufrgs.br:10183/130529
Acesso em linha:http://hdl.handle.net/10183/130529
Access Level:acceso abierto
Palavra-chave:Algorithmes parallèle
Vol de travail
Horloges logiques
Nombres pseudoaléatoire
Exécutions non-déterministes
Algoritmos paralelos
Processamento distribuído
Parallel algorithms
Work-stealing
Logical clocks
Pseudorandom numbers
Nondeterministic executions
Descrição
Resumo:Nous présentons deux contributions dans le domaine de la programmation parallèle. La première est théorique : nous introduisons l’analyse SIPS, une approche nouvelle pour dénombrer le nombre d’opérations de synchronisation durant l’exécution d’un algorithme parallèle ordonnancé par vol de travail. Basée sur le concept d’horloges logiques, elle nous permet : d’une part de donner de nouvelles majorations de coût en moyenne; d’autre part de concevoir des programmes parallèles plus efficaces par adaptation dynamique de la granularité. La seconde contribution est pragmatique : nous présentons une parallélisation générique d’algorithmes pour la génération déterministe de nombres pseudo-aléatoires, indépendamment du nombre de processus concurrents lors de l’exécution. Alternative à l’utilisation d’un générateur pseudo-aléatoire séquentiel par processus, nous introduisons une API générique, appelée Par-R qui est conçue et analysée grâce à SIPS. Sa caractéristique principale est d’exploiter un générateur séquentiel qui peut “sauter” directement d’un nombre à un autre situé à une distance arbitraire dans la séquence pseudo-aléatoire. Grâce à l’analyse SIPS, nous montrons qu’en moyenne, lors d’une exécution par vol de travail d’un programme très parallèle (dont la profondeur ou chemin critique est très petite devant le travail ou nombre d’opérations), ces opérations de saut sont rares. Par-R est comparé au générateur pseudo-aléatoire DotMix écrit pour Cilk Plus, une extension de C/C++ pour la programmation parallèle par vol de travail. Le surcout théorique de Par-R se compare favorablement au surcoput de DotMix, ce qui apparait aussi expériemntalement. De plus, étant générique, Par-R est indépendant du générateur séquentiel sous-jacent.