firedrakeproject / firedrake-bench

A repository of Firedrake benchmarks
0 stars 2 forks source link

installing firedrake-bench #3

Open francispoulin opened 8 years ago

francispoulin commented 8 years ago

I am keep to try the examples that you have posted in this repo. Unfortunately, when I try anything from firedrake I usually get problems with libraries not found.

Do you have any instructions on how this repo can be installed?

kynan commented 8 years ago

This is not a package or library, so therefore isn't mean to be installed. To run any of the benchmarks, the root directory of firedrake-bench needs to be on your $PYTHONPATH (which should indeed be documented!).

francispoulin commented 8 years ago

Thanks for the reply. I added the firedrake-bench into my python path. But when I try any of the examples I get the problem that it can't find pybench. There is no file in firedrake-bench called pybench, and I can't seem to find it in any of the subfolders.

I see that you have another git repo called pybench.

https://github.com/firedrakeproject/pybench

I presume that means that I need to install pybench first. Does that mean I git clone it, then do

python setup.py install

all in firedrake?

francispoulin commented 8 years ago

Just to add on my last comment, I installed pybench the way that I thought above and now the scripts are finding pybench. One step forward.

Now, when I try running the codes like navier_stokes.py seem to run and generate .pyc scripts. But when I try running the firedrake version, it has problems because it can't find ffc.log.

File "navier_stokes/firedrake_navier_stokes.py", line 177, in <module>
  from ffc.log import set_level

I looked around and see that some scripts try and import ffc instead of ffc.log. That's where I'm stuck right now.

wence- commented 8 years ago

Ah, as of last week, firedrake no longer requires ffc. But we forgot to update this repository for these changes. I will do so tomorrow. Thanks!

wence- commented 8 years ago

OK, I fixed that particular problem. I note in passing that the navier_stokes demo doesn't use a scalable solver for the pressure-projection step. It's coded up using Chorin's method, but the pressure solver is just ILU-preconditioned CG, which is not going to be algorithmically scalable. You may wish to try out using a multigrid preconditioner instead.

francispoulin commented 8 years ago

Thanks for fixing this up and pointing out the issue with the scalability.

I did a git pull in firedrake-bench and I've tried running different examples and I get the same type of response

$ ~/software/firedrake/bin/python advection_diffusion/firedrake_advection_diffusion.py 
/Users/fpoulin/software/firedrake/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')

First matplotlib wasn't installed but I used pip to install it. After this warning I don't get an error message but I also don't get an plots or data files generated. I presume the bench marks will do something when it's done?

wence- commented 8 years ago

Hmm, I'm not hugely au fait with how the results are gathered in firedrake-bench (and where the plotting comes from), @kynan can maybe comment.

kynan commented 8 years ago

@francispoulin Sorry for the slow response, I no longer actively work on Firedrake. Unfortunately it's not quite that straightforward: the benchmarks support a number of modes and you need to pass the right command line arguments. Again, this should all be documented, but I haven't found the time to do this and you're the first "external" user. I'll see if I can come up with a README with the most important bits.