Trevor, this very valuable.  Many thanks.

Dr. James A Warren
Director, Materials Genome Program
Material Measurement Laboratory
National Institute of Standards and Technology
(301)-975-5708<tel:(301)-975-5708>
________________________________
On: 29 July 2015 12:52, "Keller, Trevor" <[email protected]> wrote:

Hello fellow FiPyers,


There are several bits and pieces mentioning FiPy and Trilinos here, in the 
user's manual, and around the Internet, but I haven't found a detailed guide to 
install FiPy with Trilinos from source. I recently gave it a try on Debian -- 
and it wasn't too bad. The whole process, which involved a couple false starts, 
took me a day and a half. It is my hope in publishing this bare-bones guide 
that fellow travelers can get it running on Linux in just a few hours. If you'd 
like to follow this guide, the standard disclaimer applies: you are downloading 
source code from the Internet and executing it on your machine. Proceed with 
the utmost caution.


My machine runs Debian GNU/Linux 7.8 "wheezy" on a 4-core Intel processor. I am 
not a sudoer, so a virtual environment was used: conda, from the Anaconda 
Python distribution. The various source codes were extracted and compiled 
within the ~/Downloads directory, then installed into the conda environment. 
Many of the Python programs are available directly through Anaconda, and should 
probably be installed through that package manager rather than from source. I 
chose to compile everything to (a) see if I could and (b) ensure compiler and 
library consistency.


The attached build notes indicate the order in which packages were installed, 
provide the home- or download-page URL for the software project, and specify 
the commands I used to compile and install the code. Installation of Anaconda 
is excluded, since I did not have to do it; commands to download, extract, and 
cd into the source code are excluded since the latest versions change almost 
daily.


After installation, I executed Daniel Wheeler's test script 
(https://gist.github.com/wd15/8717979) to confirm everything worked. This 
resulted in a couple of interesting things. First, FiPy as-is compares versions 
as strings and believes gmsh 2.10.0 is less than 2.5.0. I revised my local copy 
to compare versions as '.'-delimited tuples, which allowed the code to execute 
in parallel; I'm working on a patch. Second, the runtimes increased through 
np=4, then dropped at np=5 and beyond to values similar to Dr. Wheeler's 
(http://wd15.github.io/2014/01/30/fipy-trilinos-anaconda/). The machine has 
only four cores and is not hyperthreaded, so this was a surprise. It could be 
that timing differences for heavier workloads will follow expected scaling 
laws, but I am baffled by the result.


Results table (run type, MPI rank, grid size, time; modified script at 
https://gist.github.com/anonymous/43afb6c567ebfd6d3b2f):


$ echo -n "serial"; python mpitest.py; echo -n "trilin"; python mpitest.py 
--trilinos; for n in {1..6}; do echo -n "np = ${n}"; mpirun -np $n python 
mpitest.py --trilinos; done
serial  0       27900   0.134404
trilin  0       27900   0.275607
np = 1  0       27900   0.664498
np = 2  0       14973   2.783230
        1       14973   2.797370
np = 3  0       10230   3.167559
        1       10480   3.174004
        2       10538   3.196746
np = 4  0       7958    5.139595
        1       7971    5.139695
        2       8106    5.139710
        3       7955    5.139925
np = 5  0       6542    0.499731
        1       6538    0.500179
        2       6534    0.500313
        3       6655    0.498517
        4       6689    0.500652
np = 6  0       5463    0.447847
        1       5584    0.448344
        2       5594    0.445663
        3       5512    0.449028
        4       5570    0.446170
        5       5571    0.449486


Thoughts on this anomalous behavior would be greatly appreciated!


Good luck,

Trevor



_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to