• Aucun résultat trouvé

SiIB=∅, il cherche<τ ∈M Btelle que

∀τ ∈ M B∩ΓBi(P) \ {<τ},

ci(<τ)≤ci(τ). (27) Finalement, si l’agent ne trouve pas une telle tâche, il arrête d’initier des enchères.

Il est important de remarquer que l’ordre leximax sur le paquet semi-local est conforme au principe selon lequel on exécute d’abord les grandes tâches locales et on négocie d’abord les grandes tâches distantes. Quand un agent ex-plore le paquet semi-local, il commence par les tâches qui ont un ratio de possession élevé afin de les exécuter, et par celles qui ont un ratio de possession faible afin de les négo-cier. Quand un agent examine les tâches qui ont le même ratio de possession, il le fait toujours dans le même ordre : des plus coûteuses vers les moins coûteuses (cf. figure 2). Donc, quand un agent explore le paquet semi-local à la re-cherche d’une tâche à exécuter, il considère la plus locale et plus coûteuse ; et quand un agent explore le paquet semi-local à la recherche d’une tâche à négocier, il considère la moins locale et plus coûteuse.

τ1 τ2 τ3 τ4 τ5 τ6 τ7

o1k) 1 0 0.33 0.33 0.2 0.85 0

o2k) 0 1 0.66 0.66 0.8 0.14 1 TABLE2 – Ratios de possession pour l’exemple 2 Exemple 2(Lot par possession). Reprenons l’exemple 1 où nous supposons qu’une ressource distante est deux fois plus coûteuse qu’une ressource locale. Formellement,

ci(τ) =di(τ) + 2 dτ −di(τ)

= 2dτ−di(τ) (28)

Le tableau 2 donne le ratio de possession de chaque agent pour chaque tâche. Considérons l’allocation où toutes les

tâches sont affectées à l’agent1. Selon la stratégie

agnos-tique, l’agent1ne fait pas de différence entreτ2etτ6pour une délégation puisque ces tâches ont le même coût pour

lui. Selon la stratégie situationnelle, l’agent1 dont le lot

par possession est donné figure 3 considère :

— l’exécution des tâchesτ61, τ4352, puisτ7; — la négociation des tâchesτ725431, puis

τ6.

La stratégie situationnelle amène l’agent1à exécuterτ6et

à négocierτ7afin de diminuer le makespan, puisqueτ6est

en grande partie locale etτ7 est distante. En particulier,

l’agent1exécuteτ6avantτ1carτ6est plus coûteuse (cf.

table 1).

Nous soulignons que les tâches dans le paquet semi-local sont triées d’abord selon le ratio de possession puis selon

leur coût : que l’agent1cherche à négocier ou à exécuter

une tâche, il considère celles qui ont le même ratio maximal de possession et dans le même ordre (par ex.τ4, puisτ3).

FIGURE3 – Lot par possession de l’agent1

6 Application pratique

Comme application pratique, nous considérons le déploie-ment distribué du patron de conception MapReduce pour le traitement de jeux de données de grandes tailles sur une grappe de serveurs [9]. [16] identifient plusieurs biais qui pénalisent le temps nécessaire au traitement des données. En particulier, le biais de partitionnement se produit quand

un reducer doit traiter un plus grand nombre de clés (et

donc de tâches) que les autres. Ce biais produit un déséqui-libre dans les charges de travail desreducers. La stratégie

situationnelle permet aux agents d’équilibrer les charges et ainsi d’améliorer le temps d’exécution.

Nous avons déployé MapReduce à l’aide d’un système dis-tribué multi-agents. Notre prototype2a été implémenté en Scala avec la boîte à outils Akka3adaptée aux applications orientées messages, fortement concurrentes, distribuées et robustes.

Nos expériences4 utilisent un jeu de données de 8 Gio (82,283clés) qui a été généré de telle sorte que l’alloca-tion initiale des tâches (cf. figure 4) soit déséquilibrée et de manière à pouvoir vérifier que la proximité entre les don-nées et les nœuds de traitement a un impact sur le make-spanet donc sur le temps d’exécution. L’allocation initiale des tâches est le résultat de la phase de partitionnement du processus MapReduce. En d’autres termes, quand il n’y a pas de négociation, notre système a le même comportement que Hadoop.

Nous comparons, à partir de 10 exécutions pour cha-cune des (ré)allocations, les temps d’exécutions médians quand les agents adoptent une stratégie agnostique ou si-tuationnelle. Nous observons que la stratégie situationnelle améliore significativement le temps d’exécution, d’environ

−7.6%. Pour comparaison, le temps d’exécution sans re-mise en cause du partitionnement par défaut d’Hadoop est de853s(environ+100%). Nous en déduisons que le coût de la négociation peut être négligé au regard du gain ob-tenu par équilibrage des charges. De plus, la négociation permet de diminuer le temps d’exécution, tout particulière-ment avec la stratégie situationnelle.

En raison du non-déterminisme de l’exécution distribuée, nous présentons unruntypique. La figure 4 compare l’al-location de tâches quand toutes les tâches ont été traitées, qu’elles aient été négociées ou pas entre les 16 agents5, selon les stratégies agnostique ou situationnelle. Les deux stratégies sont comparéesex-post. Nous remarquons que le

makespande l’allocation initiale vaut approximativement

3.3 108, il est de2.5 108 (24%) en cas de négociation avec la stratégie agnostique locale et de 2 108 (30.7%) avec la stratégie situationnelle. Nous en déduisons que la négociation, en particulier avec la stratégie situationnelle, permet d’améliorer l’équilibre des charges.

Puisqu’elle favorise l’exécution des tâches par les nœuds qui sont les plus proches des chunks, la stratégie situation-nelle améliore l’équilibre des charges et diminue le temps d’exécution.

2. https://github.com/cristal-smac/mas4data

3. http://akka.io

4. Nos expériences ont été réalisées sur16PCs quadricœurs Intel(R)

i7 avec 16GB RAM chacun.

5. Une analyse empirique préliminaire montre qu’il n’y a pas de

va-leur ajoutée à avoir plus d’unreducerpar nœud/disque.

FIGURE4 – Allocation initiale des tâches (Hadoop) et

al-locationex-postavec les stratégies agnostique et situation-nelle

7 Conclusion

Dans cet article, nous avons formalisé le problème de l’al-location multi-agents de tâches situées et nous avons pro-posé une stratégie situationnelle pour traiter le problème de l’équilibrage des charges dans les systèmes distribués. Cette stratégie adopte une approche fondée sur le marché qui nous permet de décentraliser l’équilibrage de charge pour minimiser lemakespan, i.e. le temps nécessaire pour achever la dernière tâche. Au cours du processus, les né-gociations de tâches permettent aux agents qui utilisent la stratégie situationnelle de réallouer les tâches en même temps qu’ils en consomment. Cette stratégie permet égale-ment à un agent de déterminer la prochaine délégation so-cialement rationnelle et la prochaine tâche à traiter. Confor-mément à leur propre base de croyances et à leurs connais-sances, les agents traitent en priorité les grandes tâches lo-cales et négocient en priorité les grandes tâches distantes. Afin de valider notre approche, nous avons développé un prototype dans lequel les agents négocient les tâches de re-ducedu patron de conception MapReduce dans une confi-guration distribuée. Nos résultats expérimentaux montrent que la stratégie situationnelle proposée améliore l’équilibre de charge et donc le temps d’exécution pour de telles ap-plications.

Actuellement, nous évaluons notre prototype dans diffé-rentes configurations matérielles, avec de nombreuses ex-périmentations qui se basent sur des jeux de données réels. Certaines configurations nous amènent à considérer que nous devons étendre notre stratégie pour négocier (a) des échanges de tâches afin d’améliorer lemakespandes allo-cations stables, et (b) des lots de tâches pour accélérer les négociations.

Remerciements.Ce travail est soutenu par l’AAP ULille « Internationalisation Actions bilatérales ».

Références

[1] Bo An, Victor Lesser, David Irwin, and Michael Zink. Automated negotiation with decommitment for dyna-mic resource allocation in cloud computing. InProc.

of AAMAS, pages 981–988, 2010.

[2] Martin R. Andersson and Tuomas W. Sandholm. Contract types for satisficing task allocation : Ii ex-perimental results. InProc. of the AAAI spring

sym-posium : Satisficing models, pages 1–7, 1998.

[3] Gamal Attiya and Yskandar Hamam. Task allocation for maximizing reliability of distributed systems : A simulated annealing approach. Journal of

Paral-lel and Distributed Computing, 66(10) :1259–1266,

2006.

[4] Quentin Baert, Anne-Cécile Caron, Maxime Morge, and Jean-Christophe Routier. Stratégie de découpe de tâche pour le traitement de données massives. In

Actes des JFSMA, pages 65–74, 2017.

[5] Quentin Baert, Anne-Cécile Caron, Maxime Morge, Jean-Christophe Routier, and Kostas Stathis. Stra-tégie situationnelle pour l’équilibrage de charge. In

Actes des JFSMA, pages 9–18, 2019.

[6] Bo Chen, Chris N. Potts, and Gerhard J

Woegin-ger. Handbook of combinatorial optimization,

chap-ter A Review of Machine Scheduling : Complexity, Algorithms and Approximability, pages 1493–1641. Springer, 1998.

[7] Quan Chen, Daqiang Zhang, Minyi Guo, Qianni Deng, and Song Guo. SAMR : A self-adaptive Ma-pReduce scheduling algorithm in heterogeneous en-vironment. InInternational Conference on

Compu-ter and Information Technology, pages 2736–2743.

IEEE, 2010.

[8] Anastasia Damamme, Aurélie Beynier, Yann Cheva-leyre, and Nicolas Maudet. The Power of Swap Deals in Distributed Resource Allocation. InProc. of AA-MAS, pages 625–633, 2015.

[9] J. Dean and S. Ghemawat. MapReduce : Simpli-fied data processing on large clusters. InSymposium

on Operating Systems Design and Implementation,

pages 137–150, 2004.

[10] Ulle Endriss, Nicolas Maudet, Fariba Sadri, and Fran-cesca Toni. Negotiating socially optimal allocations of resources.JAIR, 25(1) :315–348, 2006.

[11] Saurabh Kumar Garg, Srikumar Venugopal, James Broberg, and Rajkumar Buyya. Double auction-inspired meta-scheduling of parallel applications on global grids. Journal of Parallel and Distributed

Computing, 73(4) :450–464, 2013.

[12] Ellis Horowitz and Sartaj Sahni. Exact and approxi-mate algorithms for scheduling nonidentical proces-sors.JACM, 23(2) :317–327, 1976.

[13] Oscar H Ibarra and Chul E Kim. Heuristic algorithms for scheduling independent tasks on nonidentical pro-cessors. JACM, 24(2) :280–289, 1977.

[14] Yichuan Jiang. A survey of task allocation and load balancing in distributed systems. IEEE Transactions

on Parallel and Distributed Systems, 27(2) :585–599,

2016.

[15] Qin-Ma Kang, Hong He, Hui-Min Song, and Rong Deng. Task allocation for maximizing reliability of distributed computing systems using honeybee ma-ting optimization. Journal of Systems and Software, 83(11) :2165–2174, 2010.

[16] YongChul Kwon, Kai Ren, Magdalena Balazinska, and Bill Howe. Managing skew in Hadoop. IEEE

Data Eng. Bull., 36(1) :24–33, 2013.

[17] Miguel Liroz-Gistau, Reza Akbarinia, and Patrick Valduriez. FP-Hadoop : efficient execution of pa-rallel jobs over skewed data. VLDB Endowment, 8(12) :1856–1859, 2015.

[18] Amro Najjar, Olivier Boissier, and Gauthier Picard. Négociation adaptative pour l’acceptabilité des ser-vices d’un fournisseur SaaS. InActes des JFSMA, pages 85–94, 2017.

[19] Antoine Nongaillard and Philippe Mathieu. Realloca-tion problems in agent societies : A local mechanism to maximize social welfare. JASSS, 14(3) :21, 2011. [20] Michael Schillo, Christian Kray, and Klaus Fischer.

The eager bidder problem : a fundamental problem of DAI and selected solutions. InProc. of AAMAS, pages 599–606. ACM, 2002.

[21] Onn Shehory and Sarit Kraus. Methods for task al-location via agent coalition formation. Artif. Intell., 101(1-2) :165–200, 1998.

[22] Reid G. Smith. The contract net protocol : High-level communication and control in a distributed problem solver. IEEE Transactions on computers, 29(12) :1104–1113, December 1980.

[23] Joanna Turner, Qinggang Meng, Gerald Schaefer, and Andrea Soltoggio. Distributed strategy adaptation with a prediction function in multi-agent task alloca-tion. InProc. of AAMAS, pages 739–747, 2018. [24] William E Walsh and Michael P Wellman. A market

protocol for decentralized task allocation. InProc. of

ICMAS, pages 325–332, 1998.

[25] Peng-Yeng Yin, Shiuh-Sheng Yu, Pei-Pei Wang, and Yi-Te Wang. Task allocation for maximizing relia-bility of a distributed system using hybrid particle swarm optimization. Journal of Systems and Soft-ware, 80(5) :724–735, 2007.

Elect : Une méthode de gestion des incohérences dans des ontologies légères