This Repository acts as an Artifact for the submission of our manuscript to PACT 23'
UWOmp𝑝𝑟𝑜 : UWOmp++ with Point-to-Point Synchronization, Reduction and Schedules
Aditya Agrawal and V Krishna Nandivada
Indian Institute of Technology, Madras
Install Build Essential
sudo apt-get install build-essential
Install JDK-17
sudo apt-get install openjdk-17-jre
Install Ant To Build the Translator
sudo apt-get install ant
cd artifact-pact
The two command below will build the Translator .class files and put them in the bin folder.
ant clean
ant
./runBmk.sh: will first run gcc to generate the preprocessed output which forms as an input to the IMOP Compiler Module. The IMOP Compiler Module will take as input the preprocessed file and output a $FILENAME-processed.i file (where FILENAME is the name of the benchmark) in the output-dump directory. Then, the benchmark is compiled using gcc (with options -O3 and -fopenmp) that generates the executable $FILENAME, which can be run.
Generate the Preprocessed Output of the .c file you want to run.
Make sure you add the header file present in src/utility/generic/header.h when compiling your benchmark.
gcc -P -E -o FILENAME.i FILENAME.c
Run the Command to Translate the Given Preprocessed file to Processed Output (from the Translator)
java -da -Xms2048M -Xmx4096M -cp ${IMOPHOME}/third-party-tools/com.microsoft.z3.jar:. imop.$2 -nru -f $TESTROOT/$FILE
Compile the Translated Benchmark using GCC/CLANG
gcc/clang -fopen -O3 -o FILENAME FILENAME-processed.i (this file is generated by the translator in the output-dump directory)
Run the Translated Benchmark
./FILENAME [Optional Input If Any]