VieM - Vienna Mapping and Sparse Quadratic Assignment -- is a family of mapping programs. It includes serveral heuristics to map a task graphs onto a specified processor graph. We provide them here as easy to use open source software.
Main project site: http://viem.taa.univie.ac.at
Just type ./compile_withcmake.sh. Once you did that you can try to run the following commands in the example folder:
//generate a model of communication and computation from an input graph, e.g. for sparse matrix vector multiplication
//creates a file calles model.graph
../deploy/generate_model 3elt.graph --k 128
//map the model onto a specified architecture
//creates a file called permutation (e.g. the mapping)
../deploy/viem model.graph --hierarchy_parameter_string=16:4:2 --distance_parameter_string=1:10:100
//evaluate again (for completeness)
../deploy/evaluator model.graph --input_mapping=permutation --hierarchy_parameter_string=16:4:2 --distance_parameter_string=1:10:100
For a description of the graph format please have look into the manual.
The program is licenced under MIT. If you publish results using our algorithms, please acknowledge our work by quoting the following paper:
@techreport{schulztraeff2017,
AUTHOR = {Faraj, Marcelo Fonseca and von Kirchbach, Konrad, and Lehr, Markus and Schulz, Christian and Träff, Jesper Larsson},
TITLE = {{VieM v1.00 -- Vienna Mapping and Sparse Quadratic Assignment User Guide}},
NOTE = {Technical Report, arXiv:1703.05509},
YEAR = {2017}
}
If you use one-to-one mapping algorithms, please also cite the following:
@inproceedings{schulztraeff2017,
AUTHOR = {Schulz, Christian and Träff, Jesper Larsson},
TITLE = {{Better Process Mapping and Sparse Quadratic Assignment}},
BOOKTITLE = {{Proceedings of the 16th International Symposium on Experimental Algorithms (SEA'17)}},
SERIES = {{LIPIcs}},
PUBLISHER = {Dagstuhl},
VOLUME = {75},
PAGES = {4:1 -- 4:15},
NOTE = {Technical Report, arXiv:1702.04164},
YEAR = {2017}
}