tudasc / pira Goto Github PK
View Code? Open in Web Editor NEWPIRA - Automatic Instrumentation Refinement
License: BSD 3-Clause "New" or "Revised" License
PIRA - Automatic Instrumentation Refinement
License: BSD 3-Clause "New" or "Revised" License
In Measurement.py
(https://github.com/tudasc/pira/blob/master/lib/Measurement.py#L280)
mpi_funcs_dump = '/tmp/mpi_funcs.dump'
U.shell('wrap.py -d > ' + mpi_funcs_dump)
there is a write access to /tmp/mpi_funcs.dump
. This file might already exist and belong to another user. This leads to an error and abortion of execution:
[Info] Running instrumentation iteration 0
[Error] Utility::shell: Caught Exception Command 'wrap.py -d > /tmp/mpi_funcs.dump' returned non-zero exit status 1.
[Error] Pira::execute_with_config: Problem during preparation of run.
Message:
Utility::shell: Running command wrap.py -d > /tmp/mpi_funcs.dump did not succeed
[Error] Runner.run caught exception. Message: Utility::shell: Running command wrap.py -d > /tmp/mpi_funcs.dump did not succeed
A possible fix might be to prepend the username to the filename, e.g., /tmp/<user_name>_mpi_funcs.dump
We currently only run a CI pipeline for our internal repository.
We really should set up a github actions pipeline that runs the same tests for any opened pull requests.
Since we have a .gitlab-ci.yml
file in place that lists what we do for testing, the setup should not be problematic. We need to consider however, that we probably want a container that can be used for theses tests, because building Score-P every time doesn't make sense.
Users who do not use cmake
in their project need a way to create a compilation database.
This can be achieved using bear
(https://github.com/rizsotto/Bear).
Therefore, it might be wise to add bear
as a submodule to install with pira
.
Code for installing bear
can already be found in pira/test/integration/prepare_environment.sh
.
I use the master branch , podman version 1.6.4, CentOS7
I exec commands below
podman build -t pira:master -f docker/Dockerfile .
podman run -it localhost/pira:master
cd pira/resources
. setup_paths.sh
cd ../test/integration/GameOfLife # Example test case
XDG_DATA_HOME=/tmp ./run.sh
While deploying PIRA using Docker and attempting to run the ./run.sh script for GameOfLife, I encountered the following errors:
----- Build GameOfLife / build call graph -----
SerialGoL.cpp: In member function ‘const int GameOfLife::getNumLiveNeighbors(int, int) const’:
SerialGoL.cpp:94:32: warning: comparison of integer expressions of different signedness: ‘const int’ and ‘std::vector::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
94 | if(neighbor >= 0 && neighbor < gridA.size()){
| ~~~~~~~~~^~~~~~~~~~~~~~
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
----- Running Pira -----
Using /tmp/pira for runtime files
[INFO in '/usr/src/pira/lib/Pira.py' in 'main' line 168]: Running PIRA in compiletime filtering with configuration
/usr/src/pira/test/integration/GameOfLife/gol_config.json
[WARNING in '/usr/src/pira/lib/Pira.py' in 'process_args_for_extrap' line 147]: At least 5 repetitions are recommended for Extra-P modelling.
[INFO in '/usr/src/pira/lib/Checker.py' in 'check_configfile_v2' line 84]: Creating Cubes-Directory /tmp/pira/gol_cubes
[INFO in '/usr/src/pira/lib/Pira.py' in 'main' line 190]: Running the local case
[INFO in '/usr/src/pira/lib/Pira.py' in 'execute_with_config' line 40]: Building vanilla version for baseline measurements
[INFO in '/usr/src/pira/lib/Pira.py' in 'execute_with_config' line 46]: Running baseline measurements
[INFO in '/usr/src/pira/lib/Pira.py' in 'execute_with_config' line 57]: Running instrumentation iteration 0
[ERROR in '/usr/src/pira/lib/Utility.py' in 'shell' line 346]: Utility::shell: Caught Exception Command 'pgis_pira --scorep-out --static /usr/src/pira/test/integration/GameOfLife/../../../extern/install/metacg/bin//gol_ct.mcg' returned non-zero exit status 1.
[ERROR in '/usr/src/pira/lib/Analyzer.py' in 'analyze_local' line 111]: Utility::shell: Running command pgis_pira --scorep-out --static /usr/src/pira/test/integration/GameOfLife/../../../extern/install/metacg/bin//gol_ct.mcg did not succeed
[ERROR in '/usr/src/pira/lib/Pira.py' in 'execute_with_config' line 111]: Pira::execute_with_config: Problem during preparation of run.
Message:
Problem in Analyzer
[ERROR in '/usr/src/pira/lib/Pira.py' in 'main' line 256]: Runner.run caught exception. Message: Problem in Analyzer
Error opening instrumentation file for iteration 0: [Errno 2] No such file or directory: '../../../extern/install/metacg/bin/out/instrumented-gol_ct_it-0.txt'
Error opening instrumentation file for iteration 1: [Errno 2] No such file or directory: '../../../extern/install/metacg/bin/out/instrumented-gol_ct_it-1.txt'
Error opening instrumentation file for iteration 2: [Errno 2] No such file or directory: '../../../extern/install/metacg/bin/out/instrumented-gol_ct_it-2.txt'
[Info] Running instrumentation iteration 0
[Error] Pira::execute_with_config: Problem during preparation of run.
Message:
[Errno 1] Operation not permitted: '/tmp/pira-mpi-filter.w'
[Error] Runner.run caught exception. Message: [Errno 1] Operation not permitted: '/tmp/pira-mpi-filter.w'
This issue is similar to #2
Dear PIRA Development Team,
I encountered a compilation error while attempting to build PIRA. The error message indicates an issue with the usage of undefined fields in the MCGFileFormatVersion and MCGGeneratorVersionInfo classes within the MCGBaseInfo.h header file.
I execute ./build_submodules.sh and it seems encounter error in buiding MetaCG
The error shows below
44%] Building CXX object graph/CMakeFiles/metacg.dir/src/MCGWriter.cpp.o
cd /home/yhl/pira/extern/src/metacg/build/graph && /opt/rh/devtoolset-8/root/usr/bin/g++ -DFMT_SHARED -DJSON_DIAGNOSTICS=0 -DJSON_USE_IMPLICIT_CONVERSIONS=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_SHARED_LIB -Dmetacg_EXPORTS -I/home/yhl/pira/extern/src/metacg/graph/include -I/home/yhl/pira/extern/src/metacg/pgis/lib/include -I/home/yhl/pira/extern/src/metacg/build -I/home/yhl/pira/extern/src/metacg/build/_deps/json-src/single_include -I/home/yhl/pira/extern/src/metacg/build/_deps/spdlog-src/include -isystem /home/yhl/pira/extern/install/extrap/include -g -std=c++17 -fPIC -MD -MT graph/CMakeFiles/metacg.dir/src/MCGWriter.cpp.o -MF CMakeFiles/metacg.dir/src/MCGWriter.cpp.o.d -o CMakeFiles/metacg.dir/src/MCGWriter.cpp.o -c /home/yhl/pira/extern/src/metacg/graph/src/MCGWriter.cpp
In file included from /usr/include/sys/types.h:222,
from /usr/include/stdlib.h:314,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/cstdlib:75,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/ext/string_conversions.h:41,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/basic_string.h:6400,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/string:52,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/stdexcept:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/array:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/tuple:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:37,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
from /home/yhl/pira/extern/src/metacg/graph/include/CgNodePtr.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/MetaData.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/CgNode.h:11,
from /home/yhl/pira/extern/src/metacg/graph/include/Callgraph.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/MCGWriter.h:10,
from /home/yhl/pira/extern/src/metacg/graph/src/MCGWriter.cpp:7:
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h: In constructor ‘metacg::MCGFileFormatVersion::MCGFileFormatVersion(int, int)’:
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:17:48: error: class ‘metacg::MCGFileFormatVersion’ does not have any field named ‘gnu_dev_major’
MCGFileFormatVersion(int major, int minor) : major(major), minor(minor) {}
^~~~~
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:17:62: error: class ‘metacg::MCGFileFormatVersion’ does not have any field named ‘gnu_dev_minor’
MCGFileFormatVersion(int major, int minor) : major(major), minor(minor) {}
^~~~~
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h: In constructor ‘metacg::MCGGeneratorVersionInfo::MCGGeneratorVersionInfo(std::string&, int, int, std::string)’:
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:37:21: error: class ‘metacg::MCGGeneratorVersionInfo’ does not have any field named ‘gnu_dev_major’
: name(name), major(major), minor(minor), sha(std::move(gitSHA)) {}
^~~~~
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:37:35: error: class ‘metacg::MCGGeneratorVersionInfo’ does not have any field named ‘gnu_dev_minor’
: name(name), major(major), minor(minor), sha(std::move(gitSHA)) {}
^~~~~
In file included from /usr/include/sys/types.h:222,
from /usr/include/stdlib.h:314,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/cstdlib:75,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/ext/string_conversions.h:41,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/basic_string.h:6400,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/string:52,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/stdexcept:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/array:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/tuple:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/unique_ptr.h:37,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/memory:80,
from /home/yhl/pira/extern/src/metacg/graph/include/CgNodePtr.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/MetaData.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/CgNode.h:11,
from /home/yhl/pira/extern/src/metacg/graph/include/Callgraph.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/MCGManager.h:9,
from /home/yhl/pira/extern/src/metacg/graph/include/MCGReader.h:9,
from /home/yhl/pira/extern/src/metacg/graph/src/MCGReader.cpp:6:
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h: In constructor ‘metacg::MCGFileFormatVersion::MCGFileFormatVersion(int, int)’:
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:17:48: error: class ‘metacg::MCGFileFormatVersion’ does not have any field named ‘gnu_dev_major’
MCGFileFormatVersion(int major, int minor) : major(major), minor(minor) {}
^~~~~
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:17:62: error: class ‘metacg::MCGFileFormatVersion’ does not have any field named ‘gnu_dev_minor’
MCGFileFormatVersion(int major, int minor) : major(major), minor(minor) {}
^~~~~
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h: In constructor ‘metacg::MCGGeneratorVersionInfo::MCGGeneratorVersionInfo(std::string&, int, int, std::string)’:
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:37:21: error: class ‘metacg::MCGGeneratorVersionInfo’ does not have any field named ‘gnu_dev_major’
: name(name), major(major), minor(minor), sha(std::move(gitSHA)) {}
^~~~~
/home/yhl/pira/extern/src/metacg/graph/include/MCGBaseInfo.h:37:35: error: class ‘metacg::MCGGeneratorVersionInfo’ does not have any field named ‘gnu_dev_minor’
: name(name), major(major), minor(minor), sha(std::move(gitSHA)) {}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.