Running GenBC in parallel

Provides a system for patient-specific cardiovascular modeling and simulation.
POST REPLY
User avatar
Luca Pegolotti
Posts: 8
Joined: Sun Sep 08, 2019 9:51 am

Running GenBC in parallel

Post by Luca Pegolotti » Fri Jun 04, 2021 12:58 pm

Hi,

I need to run some coronary simulations with prescribed pressure at the inlet. To do so, I implemented the usual coronary bcs + prescribed pressure at the inlet in GenBC. In serial this seems to work fine, although it's a bit difficult to understand if my implementation is correct.

When I try to run the simulation in parallel with mpirun -n (>= 2), I get weird errors like the following
At line 78 of file USER.f (unit = 1)
Fortran runtime error: Cannot open file 'InitialData': File exists
or
ERROR: Number of Dirichlet Surfaces from Phasta is: 388685675
While nDirichletSrfs is equal to: 0 <- this is correct as all the faces are Neumann
(when run twice).

Considering that these errors occur at lines that I did not modify from the provided USER.f, I am wondering if svsolver fully supports parallel computations when GenBC is used.

Luca
Last edited by Luca Pegolotti on Sat Jun 05, 2021 1:36 am, edited 1 time in total.

User avatar
Luca Pegolotti
Posts: 8
Joined: Sun Sep 08, 2019 9:51 am

Re: Running GenBC in parallel

Post by Luca Pegolotti » Sat Jun 05, 2021 1:35 am

Some additional information: I am using Mac OS 11.3 and the errors were also reproduced on a Linux cluster. Version of gfortan: 10.2.0. Version of svsolver: latest. Unfortunately I couldn't attach the simulation files even with a very coarse mesh due to limitations in the size of the attachments. Attached you find the custom GenBC I am using (note that I added the possibility to pass time-varying inlet and myocardial pressures).
Attachments
GenBC_files.zip
(13.49 KiB) Downloaded 17 times

User avatar
David Parker
Posts: 1677
Joined: Tue Aug 23, 2005 2:43 pm

Re: Running GenBC in parallel

Post by David Parker » Sun Jun 06, 2021 9:55 pm

Hi Luca,

I've reproduced this problem on my MacOS 10.13 using /usr/local/sv/svsolver/2019-01-19/svsolver. This uses MPICH libraries in /usr/local/sv/svsolver/2019-01-19/lib.

I can execute ok using mpi using an svSolver version compiled from source using OpenMPI installed on my Mac.

Do you have OpenMPI or MPICH installed on your Mac? I'm thinking the problem is an mpi issue.

Cheers,
Dave

User avatar
Luca Pegolotti
Posts: 8
Joined: Sun Sep 08, 2019 9:51 am

Re: Running GenBC in parallel

Post by Luca Pegolotti » Mon Jun 07, 2021 2:29 pm

Hi Dave,

Thanks for taking the time to look into this. I am using the built-in binaries for Mac. I couldn't install svsolver using a custom installation of OpenMPI because my installation (weirdly enough) does not have any .cmake files I can add to my path to let the FinMPI script within svsolver find it. Simply bypassing FindMPI by adding the path of my includes and libs causes a cmake error. What is the correct way to install svsolver with a custom mpi?

By the way, the error I had on the cluster was due to a bug in my GenBC rather than the mpi version. There I can use mvapich2 without any issues.

Cheers,
Luca

User avatar
David Parker
Posts: 1677
Joined: Tue Aug 23, 2005 2:43 pm

Re: Running GenBC in parallel

Post by David Parker » Tue Jun 08, 2021 10:43 pm

Hi Luca,

I'm glad you found the problem! Getting GenBC to work correctly is indeed tricky.

I can build svSolver fine on my MacOS 10.13 with OpenMPI installed like this

Code: Select all

git clone https://github.com/SimVascular/svSolver.git
cd svSolver
mkdir build
cd build
cmake ..
make
There might be an issue with Mac OS 11.3, which CMake version are you using? Also, which GCC version are you running?

Cheers,
Dave

POST REPLY