readex-eu / readex-ptf

The Periscope Tuning Framework with extensions for READEX
BSD 3-Clause "New" or "Revised" License
1 stars 2 forks source link

about the autofilter tool and readex-dyn-detect tool #1

Closed Synlvejo closed 4 years ago

Synlvejo commented 4 years ago

Hello~Yestoday i got the source code of the two tools but i found there is only Makefile.am but no configure.ac , so I want to know if i have missed something to build them or i should use autoscan to get a configure.ac ? Thanks for any reply.

edit:

i try to use autotools ( with Makefile.am setting"scorep_autofilter_INC = ../include/ , scorep_autofilter_SOURCES = FilterRegion.cc" , autoscan , configure.scan to configure.ac with edit, aclocal , autoheader , automake -a , autoconf ) to generate a configure file in the folder filter_regions/src. But after run ./configure and make , the error "No rule to make target 'lib_dta_tool_common.la', needed by 'scorep-autofilter'. Stop.no target "" occured. I found its setting in filter_regions/src/Makefile.am:"scorep_autofilter_LDADD = lib_dta_tool_common.la" but it can't help to solve this error. did i miss something important? Thanks

madhurakswamy commented 4 years ago

Hello, You have to compile PTF, and you will need ACE, Boost, m4, autoconf, automake, libtool, autotools and cereal. However, if you don't have cereal, you may change line 2 the m4/ac_psc_cereal.m4 file to: [AC_PSC_DEPENDENCY([CEREAL], [cereal], [CEREAL], [cereal/macros.hpp], [], [], [1.2 or later], [no], [optional], [no]) ]) to remove the dependency on cereal.

The configure.ac file is in the root directory. You could use this command: ../configure --prefix=--enable-developer-mode --with-boost-lib=$BOOST_LIB --with-scorep-include=$SCOREP_INC --with-scorep-lib=$SCOREP_LIB --with-cube-lib=$SCOREP_LIB --with-cube-include=$SCOREP_INC --with-starter=supermuc

and finally, make -j 4 && make install. You will find the scorep-autofilter and readex-dyn-detect binaries in the /bin folder.

You could also have a look at the installation guide at https://www.readex.eu/index.php/readex-software/installation-guide/

Synlvejo commented 4 years ago

Hello, You have to compile PTF, and you will need ACE, Boost, m4, autoconf, automake, libtool, autotools and cereal. However, if you don't have cereal, you may change line 2 the m4/ac_psc_cereal.m4 file to: [AC_PSC_DEPENDENCY([CEREAL], [cereal], [CEREAL], [cereal/macros.hpp], [], [], [1.2 or later], [no], [optional], [no]) ]) to remove the dependency on cereal. The configure.ac file is in the root directory. You could use this command: ../configure --prefix=--enable-developer-mode --with-boost-lib=$BOOST_LIB --with-scorep-include=$SCOREP_INC --with-scorep-lib=$SCOREP_LIB --with-cube-lib=$SCOREP_LIB --with-cube-include=$SCOREP_INC --with-starter=supermuc and finally, make -j 4 && make install. You will find the scorep-autofilter and readex-dyn-detect binaries in the /bin folder. You could also have a look at the installation guide at https://www.readex.eu/index.php/readex-software/installation-guide/

I installed the PTF as the guide says by using all these parameters(with "--with-start-lib=slurm") and I have all these dependency ,but in my <PTF's install_path>/bin there are only: "psc_analysisagent , psc_generate_bare_plugin_from_skeleton , psc_regsrv , psc_source_code_directory , reinstrumented.sh , psc_clean.sh , psc_hlagent , psc_result , psc_wrapper.sh , touchall.sh , psc_frontend , psc_properties.py , psc_showprops ,reinstrumentedall.sh" The only three diffences is :

  1. I didn't set the envs like SCOREP_INC(beacause there is no request to do this ,maybe I didn't see) but i have exported their bin and lib path in ~/.bashrc;
  2. I build the PTF with the commond make -j but did not add the 4 or 8. But I think it doesn't make sence.
  3. I didn't use "--wit-starter=slurm" because my os is centos7, and I think it doesn't make sence neither. Should I focus on 1 and try to reinstall PTF ?

Edit: Wait, cube-lib = SCOREP_LIB?

madhurakswamy commented 4 years ago

1) The starter plugin doesn't really matter if you only want to run the autofilter and dyn-detect tools. However, if you want to run the framework or any of the plugins, I would recommend --with-starter=interactive. The slurm starter makes sense only if you have 2 nodes or more. 2) You need to set the -with-scorep-include= --with-scorep-lib= --with-cube-lib= --with-cube-include= The configure cannot detect this otherwise. 3) You have to set the cube include and lib to the scorep include and lib paths because the tools need some components of cube that are packaged in the readex-scorep repository.

I'm pretty sure that the binaries will be built when you do the above.

Synlvejo commented 4 years ago

The starter plugin doesn't really matter if you only want to run the autofilter and dyn-detect tools. However, if you want to run the framework or any of the plugins, I would recommend --with-starter=interactive. The slurm starter makes sense only if you have 2 nodes or more. You need to set the -with-scorep-include= --with-scorep-lib= --with-cube-lib= --with-cube-include= The configure cannot detect this otherwise. You have to set the cube include and lib to the scorep include and lib paths because the tools need some components of cube that are packaged in the readex-scorep repository.

I'm pretty sure that the binaries will be built when you do the above.

I have installed the cube myself and use the cube_path. Thanks a lot ,I will try to use the scorep_path to cube-lib/include and '--with-starter=interactive' six hours later and renew my issue. May the two tools be with me . Thanks again!

Synlvejo commented 4 years ago

The starter plugin doesn't really matter if you only want to run the autofilter and dyn-detect tools. However, if you want to run the framework or any of the plugins, I would recommend --with-starter=interactive. The slurm starter makes sense only if you have 2 nodes or more. You need to set the -with-scorep-include= --with-scorep-lib= --with-cube-lib= --with-cube-include= The configure cannot detect this otherwise. You have to set the cube include and lib to the scorep include and lib paths because the tools need some components of cube that are packaged in the readex-scorep repository.

I'm pretty sure that the binaries will be built when you do the above.

Hello, Another three situations: 1.I used ACE-6.5.8, and for the problem ’new declaration‘ I change some code. When make -j readex-ptf , the error occured:

make[2]: Leaving directory '/root/ptf-new2/readex-ptf/build'

make[1]: *** [Makefile:10066: all-recursive] Error 1

make[1]: Leaving directory '/root/ptf-new2/readex-ptf/build'

make: *** [Makefile:3022: all] Error 2 Makefile code:3022 : SUBDIRS = MOSTLYCLEANFILES = $(DX_CLEANFILES) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive Makefile code:10066: $(am__recursive_targets): @fail=; if $(am__make_keepgoing); then failcom='fail=yes'; else failcom='exit 1';

2.I wanted to install ACE-6.3.3 but :"error: 'class std::basic_streambuf' has no member named 'set_interceptor'" . The ACE developer said it was fixed in 6.4.4.

3.So I changed to ACE-6.4.4 without changing ACE_CDR code and the same error occured ,too.

Maybe it's not relevant to the ACE version?

edit: make with v=1: ../readex/cube_tools/tuning_potential/src/DetectRegion.cc: In function ‘int printSummary(PhaseRegion, const std::list<SignificantRegion>&, double, double, double, std::vector<std::basic_string >&, std::vector<std::basic_string >&, bool, const string&, double)’: ../readex/cube_tools/tuning_potential/src/DetectRegion.cc:723:29: error: ‘next’ is not a member of ‘boost’ if ( boost::next( region ) == com_intensity_variation_reg.end() ) ^~~~ ../readex/cube_tools/tuning_potential/src/DetectRegion.cc:723:29: note: suggested alternative: ‘get’ if ( boost::next( region ) == com_intensity_variation_reg.end() ) ^~~~ May be helpful And my boost version is 1.69 and later than 1.62

Okay, fine ,happy, I manually add #include<boost/next_prior.hpp> to the /readex/cube_tools/tuning_potential/src/DetectRegion.cc and finally make success! And I find the scorep-autofilter tool and readex-dyn-detect tool in PTF/bin , thanks again~

madhurakswamy commented 4 years ago

I'm not quite sure where the problem is. Could you please paste all the commands you used and your changes? Also, please have a look at the automatic installation script on https://www.readex.eu/index.php/readex-software/installation-guide/ to see if you are missing something. You could also try this script for your installation

Synlvejo commented 4 years ago

I'm not quite sure where the problem is. Could you please paste all the commands you used and your changes? Also, please have a look at the automatic installation script on https://www.readex.eu/index.php/readex-software/installation-guide/ to see if you are missing something. You could also try this script for your installation

I have renewed issue but i don't know why it didn't success. I added make V=1 to find the problem and there is a message : next is not a member of boost in tuning_potential/src/DetectRegion.cc ,I solved it by manually add #include<boost/next_prior.hpp>. And my ACE version is 6.4.4. Finally I found the autofilter tool and the readex-dyn-detect tool in PTF/bin. Cheers and thanks