gflow / GFlow

Software for modeling circuit theory-based connectivity
GNU General Public License v3.0
22 stars 5 forks source link

installation error #14

Closed vanessamata closed 7 years ago

vanessamata commented 7 years ago

Hi,

I've tried following the installation procedure, however I always get a Petsc error that I can't fix:

filipa@work:~/GFlow-0.1.6-alpha$ make mpicc -g -Wall -O2 -std=c11 -D_GNU_SOURCE -isystem /home/filipa/petsc-3.7.5/include -c gflow.c -o gflow.o In file included from /home/filipa/petsc-3.7.5/include/petscbag.h:4:0, from /home/filipa/petsc-3.7.5/include/petsc.h:5, from gflow.c:27: /home/filipa/petsc-3.7.5/include/petscsys.h:14:23: fatal error: petscconf.h: No such file or directory compilation terminated. Makefile:12: recipe for target 'gflow.o' failed make: *** [gflow.o] Error 1

I don't understand why this is happening when I have installed Petsc. If I copy the petscconf.h present in a different directory of the Petsc folder (/arch-linux2-c-debug/include), then I get the following error:

filipa@work:~/GFlow-0.1.6-alpha$ make mpicc -g -Wall -O2 -std=c11 -D_GNU_SOURCE -isystem /home/filipa/petsc-3.7.5/include -c gflow.c -o gflow.o In file included from /home/filipa/petsc-3.7.5/include/petscbag.h:4:0, from /home/filipa/petsc-3.7.5/include/petsc.h:5, from gflow.c:27: /home/filipa/petsc-3.7.5/include/petscsys.h:144:6: error: #error "PETSc was configured with MPICH but now appears to be compiling using a non-MPICH mpi.h"

error "PETSc was configured with MPICH but now appears to be compiling usi

  ^

gflow.c: In function ‘update_matrix’: gflow.c:239:18: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=] message("Infinite value found. R[%zu][%zu] = %lf; R[%llu][%llu] = %lf\ ^ gflow.c:239:18: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘long unsigned int’ [-Wformat=] gflow.c: In function ‘parse_args’: gflow.c:131:7: warning: ignoring return value of ‘truncate’, declared with attribute warn_unused_result [-Wunused-result] truncate(reff_path, 0); /* Empty the file now, we'll have to repoen and ^ Makefile:12: recipe for target 'gflow.o' failed make: *** [gflow.o] Error 1

I have installed Petsc 3.7.5. I don't understand much of linux, so I'm completely lost...

Thanks

Vanessa

gioman commented 7 years ago

@vanessamata Hi, on what Linux distribution/version are you trying to compile? I was not able to compile on Ubuntu 16.04, but it was smooth on 16.10. As the workstations were I had to do it are all Ubuntu 16.04 or 14.04 I ended compiling/installing GFlow in 16.10 Docker containers (which I may be able to share if you don't manage to compile yourself) and now people can do their maps in a fraction of time compare to what they needed using CS.

If I copy the petscconf.h present in a different directory of the Petsc folder

likely not to work.

vanessamata commented 7 years ago

Hi Giovanni!

I am trying to compile it in a 16.04 Ubuntu, exactly. I am open to any possibility that works with this version of Ubuntu, so that would be perfect [😃] I have a master student that needs to re-do all her analysis, and CS is going to take her ages, not to mention that she has to run it in windows and we often need the computer in Linux.

Thanks!

Vanessa


De: Giovanni Manghi notifications@github.com Enviado: 26 de fevereiro de 2017 10:12:40 Para: Pbleonard/GFlow Cc: vanessamata; Mention Assunto: Re: [Pbleonard/GFlow] installation error (#14)

@vanessamatahttps://github.com/vanessamata Hi, on what Linux distribution/version are you trying to compile? I was not able to compile on Ubuntu 16.04, but it was smooth on 16.10. As the workstations were I had to do it are all Ubuntu 16.04 or 14.04 I ended compiling/installing GFlow in 16.10 Docker containers (which I may be able to share if you don't manage to compile yourself) and now people can do their maps in a fraction of time compare to what they needed using CS.

If I copy the petscconf.h present in a different directory of the Petsc folder

likely not to work.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/Pbleonard/GFlow/issues/14#issuecomment-282545775, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANNt4GkorK6K5RXnFn6AmsVOvHAgUC4qks5rgVAYgaJpZM4MLrMR.

gioman commented 7 years ago

I am trying to compile it in a 16.04 Ubuntu, exactly. I am open to any possibility that works with this version of Ubuntu, so that would be perfect [:smiley:]

GFlow has dependencies versions that were not that easy to get on 16.04 (at least for me), while on 16.10 compilation it just works, so my suggestion it to use a 16.10 installation.

If you don't want to actually install 16.10 on the computers you need to use then you can follow at least two "workarounds":

1) use a Virtual Machine 2) use a Docker container (which would also work on Windows)

I followed the second path and made a few people happy ;)

Please also notice that as described in the paper you get the most of of GFlow when you can run it on powerful workstations/servers or supercomputers. Running the analysis on 2/4 core CPUs and you'll get some improvement on CS, but not as much as you can achieve with more cores.

A colleague has estimated recently that on his 12 cores (24 threads) workstation he is able to run in 1 month what in CS would have taken at least 1 year of cpu time.

vanessamata commented 7 years ago

Ok, I managed to set up a dock image of Ubuntu 16.10 and compile Gflow there. However, how do I move files around between the container and the local computer? Sorry, I know this has nothing to do with Gflow anymore, but I'm not very familiar with this.

Thanks!

Vanessa


De: Giovanni Manghi notifications@github.com Enviado: 26 de fevereiro de 2017 13:31:53 Para: Pbleonard/GFlow Cc: vanessamata; Mention Assunto: Re: [Pbleonard/GFlow] installation error (#14)

I am trying to compile it in a 16.04 Ubuntu, exactly. I am open to any possibility that works with this version of Ubuntu, so that would be perfect [😃]

GFlow has dependencies versions that were not that easy to get on 16.04 (at least for me), while on 16.10 compilation it just works, so my suggestion it to use a 16.10 installation.

If you don't want to actually install 16.10 on the computers you need to use then you can follow at least two "workarounds":

  1. use a Virtual Machine
  2. use a Docker container (which would also work on Windows)

I followed the second path and made a few people happy ;)

Please also notice that as described in the paper you get the most of of GFlow when you can run it on powerful workstations/servers or supercomputers. Running the analysis on 2/4 core CPUs and you'll get some improvement on CS, but not as much as you can achieve with more cores.

A colleague has estimated recently that on his 12 cores (24 threads) workstation he is able to run in 1 month what in CS would have taken at least 1 year of cpu time.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/Pbleonard/GFlow/issues/14#issuecomment-282556157, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANNt4J3FD7RkTVbdBNZoDB9h2vbjHwQ7ks5rgX7JgaJpZM4MLrMR.

gioman commented 7 years ago

Ok, I managed to set up a dock image of Ubuntu 16.10 and compile Gflow there. However, how do I move files around between the container and the local computer? Sorry, I know this has nothing to do with Gflow anymore, but I'm not very familiar with this.

Hi Vanessa, you must/can run the container with a series of flags, ex:

docker run -it -d -v /mnt/7CBA9EF41EAB3319/GFLOW:/root/GFlow/gflow_data container_name

the above will map the local/host folder

/mnt/7CBA9EF41EAB3319/GFLOW

to the container one

/root/GFlow/gflow_data

Then

docker exec -it container_name bash

to get bash/terminal control of the container. You will likely need also to install and use the "screen" utility in the container. Screen allows you to open virtual terminals, run a process and then detach the session so you time consuming processes can continue do their job and you don't need to keep the terminal open. You can edit also directly the GFlow config files directly within the container if you want, just install a fairly simple command line editor like "nano".

pbleonard commented 7 years ago

@vanessamata did you get Gflow up and running? Please let me know if you need any additional help.