This paper studies critical runtime-system issues encoun-tered when packing data for transmission in a lazy, parallel graph re-duction system. In particular, we aim to answer two questions: How much graph should go into a packet? How aggressively should a processor look for work after requesting remote data? In order to answer the first question, we compare various packing schemes, of which one extreme packs just the node that is demanded (“incremental fetching”), and the other packs all the graph that is reachable from that node (“bulk fetching”). The second question is addressed by considering various mechanisms for latency hiding during communication, ranging from fully synchronous communication with no attempt to mask latency, to full thread migration during asynchronous communication. In order to make our results as general as possible, we have used the GranSim simulator to study a wide variety of parallel machine configurations. Based on these measurements we propose concrete improvements for parallel graph reducers such as the GUM implementation of Glasgow Parallel Haskell.
CITATION STYLE
Loidl, H. W., & Hammond, K. (1997). Making a packet: Cost-effective communication for a parallel graph reducer. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1268, pp. 184–199). Springer Verlag. https://doi.org/10.1007/3-540-63237-9_25
Mendeley helps you to discover research relevant for your work.