Code Monkey home page Code Monkey logo

Comments (8)

Z10Frank avatar Z10Frank commented on July 17, 2024 1

It worked, thank you so much for all the help!
With

OMPSSTWO=/gpfs/users/massimof/mcxx/install/bin
export PATH=$OMPSSTWO:$PATH
make 
make run

I was able to compile the example in https://pm.bsc.es/gitlab/ompss-2/examples/dot-product, the results seems ok:

./01.dot_product_seq $((1024*256)) 8192
size (K), 262144, chunk (K), 8192, time (ms), 2118
./02.dot_product_task+dep $((1024*256)) 8192
size (K), 262144, chunk (K), 8192, time (ms), 617
./03.dot_product_task+reduction $((1024*256)) 8192
size (K), 262144, chunk (K), 8192, time (ms), 209

from mcxx.

rofirrim avatar rofirrim commented on July 17, 2024

Hi @Z10Frank,

this is a bug caused by the absence of some tools at compile time. While we attempt to support this case, make may be led to believe it needs to regenerate some files (I've looked into this issue a few times before, I seem to recall it looked like one file was regenerated using a script which requires no extra dependences but then this file is an input of one of those files that requires extra tools).

The tools I mean are those reported at the end of the configure:

configure: WARNING: flex files (*.l) will not be considered for regeneration
configure: WARNING: bison files (*.y) will not be considered for regeneration
configure: WARNING: gperf files (*.gperf) will not be considered for regeneration

Would it be possible for you to make sure flex, bison and gperf are available at configure time and try again? This is not a full solution, more a workaround. Let me know if doing this solves this issue for you.

Thanks!

from mcxx.

Z10Frank avatar Z10Frank commented on July 17, 2024

Thank you!
I have installed the libraries (bison-2.6.5, flex-2.6.4, gperf-3.1) on the cluster where I am working on. Since I have not the authorisations to install in the usual shared paths, they are installed in custom paths like $HOME/bison-2.6.5/install.

The Mercurium compilation probably looks for them in the default shared paths, and I can't find dedicated flags for the ./configure file.

Commands like export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/bison-2.6.5/install/ etc. do not seem to solve the issue, is there a way to make these dependencies visible to the configure?

from mcxx.

rofirrim avatar rofirrim commented on July 17, 2024

Hi @Z10Frank,

You will have to set the environment variables BISON, FLEX GPERF at the configure line (make them be the path to the corresponding tool).

There is a number of these kind of variables that you can list using configure --help

$ ./configure BISON=/path/to/bison FLEX=/path/to/flex GPERF=/path/to/gperf <rest of the configure flags>

Let me know if this helps.

Kind regards

from mcxx.

Z10Frank avatar Z10Frank commented on July 17, 2024

Thank you! I have used

export MERCURIUM=/gpfs/users/massimof/ompss-19.06/mcxx-2.3.0/install
export BISON=/gpfs/users/massimof/bison-2.6.5/install
export FLEX=/gpfs/users/massimof/flex-2.6.4/install
export GPERF=/gpfs/users/massimof/gperf-3.1/install
export NANOSSIX=/gpfs/users/massimof/nanos6/install
export GIT=/gpfs/softs/spack/opt/spack/linux-centos7-cascadelake/gcc-9.2.0/git-2.25.0-lojbmyepxnaay2yotcnyzwwty36rnjyq

./configure BISON=$BISON FLEX=$FLEX GPERF=$GPERF GIT=$GIT --prefix=$MERCURIUM --enable-ompss-2 --with-nanos6=$NANOSSIX

make -j 10

make install

Now the log file shows that the requirements are recognised:

* Tools configured:

   Flex : /gpfs/users/massimof/flex-2.6.4/install
   GNU bison : /gpfs/users/massimof/bison-2.6.5/install
   GNU gperf : /gpfs/users/massimof/gperf-3.1/install
   git content tracker: /gpfs/softs/spack/opt/spack/linux-centos7-cascadelake/gcc-9.2.0/git-2.25.0-lojbmyepxnaay2yotcnyzwwty36rnjyq
   SQLite 3 cflags: -I/gpfs/softs/spack/opt/spack/linux-centos7-cascadelake/intel-19.0.3.199/sqlite-3.30.1-saq7stuwy6563nyakbi42nkwjpapha6g/include
   SQLite 3 libs: -L/gpfs/softs/spack/opt/spack/linux-centos7-cascadelake/intel-19.0.3.199/sqlite-3.30.1-saq7stuwy6563nyakbi42nkwjpapha6g/lib -lsqlite3

I guess this will surely help, but the same error persists:
compilation_Mercurium_new.txt

from mcxx.

rofirrim avatar rofirrim commented on July 17, 2024

Hi @Z10Frank ,

try make clean and then make- j$(nproc) and let me know.

Kind regards,

from mcxx.

Z10Frank avatar Z10Frank commented on July 17, 2024

Thank you, but the main difference after a make clean and make seems the message CCBUILD lib/perish.o at the end:
compilation_Mercurium_new2.txt

from mcxx.

rofirrim avatar rofirrim commented on July 17, 2024

Hi @Z10Frank,

Ok I didn't spot earlier what was going on, sorry about that.

checking for nvcc... no
checking for flex... /gpfs/users/massimof/flex-2.6.4/install
checking flex version... ./configure: line 25797: /gpfs/users/massimof/flex-2.6.4/install: Is a directory
error, could not guess flex version
checking for bison... /gpfs/users/massimof/bison-2.6.5/install
checking bison version... ./configure: line 25915: /gpfs/users/massimof/bison-2.6.5/install: Is a directory
error, could not guess bison version
checking for gperf... /gpfs/users/massimof/gperf-3.1/install
checking gperf version... ./configure: line 26015: /gpfs/users/massimof/gperf-3.1/install: Is a directory
error, could not guess gperf version

Don't specify the directory, do specify the binary itself as in /gpfs/users/massimof/gperf-3.1/install/bin/gperf Try again like this.

You don't want these messages.

configure: WARNING: flex files (*.l) will not be considered for regeneration
configure: WARNING: bison files (*.y) will not be considered for regeneration
configure: WARNING: gperf files (*.gperf) will not be considered for regeneration
configure: WARNING: some tools are missing. The resulting build will not be useable for development of Mercurium

Kind regards,

from mcxx.

Related Issues (17)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.