Go to the first, previous, next, last section, table of contents.


GranSim vs GUM

. .

[MAINLY A PLACEHOLDER FOR A REAL COMPARISON]

In a nutshell: The GUM runtime-system is very close to GranSim. To a fairly large degree the same code is used by both versions. The main source of inaccuracy is the modelling of stealing sparks and threads. GUM uses a fishing mechanism: a fish message is sent from processor to processor, looking for sparks. In GranSim we use the global knowledge of the system and weigh the costs for stealing a spark with the inverse of the probability of hitting a processor with available sparks. Furthermore, there is no counterpart of GUM's FETCHME closures as pointers to remote data in GranSim.

On the other hand, GranSim is also significantly more powerful than GUM. It supports thread migration, offers different strategies for packing a graph (based on the number of thunks), and it allows to choose between different fetching strategies, when deciding what to do while one thread fetches remote data. These features mainly deal with the aspect of data locality in the program.

Another important aspect for the performance of the granularity of the parallel program. This can be tuned by choosing among three basic methods for granularity control (see section Granularity Control Mechanisms).


Go to the first, previous, next, last section, table of contents.