[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OpenMPI, PETSc and petsc4py in a Mac Intel



Hi all,

During the past weeks I was trying to install the Python bindings for PETSc (petsc4py) for
Mac Intel (a black Macbook and an Aluminium iMac, both with OS X 10.4.10)


I succeeded and "how I did it" might be helpful for some others Python-PETSc-Mac-Users.

Before to start the installation you'll need to have installed:

* XcodeTools:

It is IMPORTANT to get the latest version directly from Apple's website (http://connect.apple.com), the version
that comes with the installation CD have some issues (or not so nice "features".) I recommend to upgrade
your XcodeTools before trying to install anything.


* Python 2.5, Numpy, Scipy (optional - scientific lib) and Matplotlib (optional -matlab style graphics):

I followed the installation of this packages from: http:// www.scipy.org/Download
I installed MacPython2.5 and the SuperPack. For some reason Matplotlib didn't work after the installation
of the superpack, so I manually installed it again from: http:// matplotlib.sourceforge.net/



INSTALLATION

I'll describe the whole installation of OpenMPI, PETSc and petsc4py.

OpenMpi
-------------

Download OpenMPI source from:
http://www.open-mpi.org/software/ompi/v1.2/

Decompress the downloaded tar.gz file and from a terminal "cd" into the openMpi folder.
'$' indicates a terminal command, e.g;
$ tar -xzvf openmpi-1.2.3.tar.gz
$ cd openmpi-1.2.3


Now you can compile openmpi
$ ./configure --prefix=/usr/local/openmpi --with-fortran --enable- shared --disable-static --with-xgrid
$ sudo make
$ sudo make install


Add the next line at the END of /etc/profile, so the path will be available for all the users:
export PATH=$PATH:/usr/local/openmpi/bin




PETSc
-------------

First you need to make sure that OpenMPI is properly installed! check that
mpicc and mpif77 are in your $PATH before running the PETSc configure.py!
(if you added the export PATH to /etc/profile you can close your terminal and
open a new terminal, the PATH should be working now, otherwise, you can just type
in your terminal:
export PATH=$PATH:/usr/local/openmpi/bin



I installed PETSc on /opt/petsc $ sudo mkdir /opt $ sudo mkdir /opt/petsc

Set permissions for user and group.
$ sudo chown user:group /opt/petsc
In my case I added the user 'felipe' and the group 'admin' (sudo chown felipe:admin /opt/petsc)


Download PETSc from:
http://www-unix.mcs.anl.gov/petsc/petsc-as/download/index.html
Save the downloaded tar.gz on /opt/petsc

Decompress the file
$ cd /opt/petsc
$ tar -xzvf petsc-2.3.3-p5.tar.gz

I installed petscy for shared libraries and without X, beside this everything is normal:
$ cd petsc-2.3.3-p5
$ export PETSC_ARCH=darwin8.10.1-c-debug
$ export PETSC_DIR=/opt/petsc/petsc-2.3.3-p5
$ ./config/configure.py --with-mpi-dir=/usr/local/openmpi --with- shared=1 --with-x=0
$ make all test


At the end of /etc/profile add (so it will be available for all the users):
# variables for petsc
export PETSC_ARCH=darwin8.10.1-c-debug
export PETSC_DIR=/opt/petsc/petsc-2.3.3-p5




petsc4py
-------------
Open a new terminal so the variables PETSC_ARCH and PETSC_DIR will be available.


I installed petsc4py in /opt/petsc/petsc4py

In a terminal
$ cd /opt/petsc/petsc4py

Get a copy of petsc4py from: http://code.google.com/p/petsc4py/
and save it at /opt/petsc/petsc4py

$ tar -xvf petsc4py-0.7.5.tar
$ cd petsc4py-0.7.5
$ python setup.py install --home=/opt/petsc/petsc4py

# Add at the end of /etc/profile (it will be available for all the users)
export PYTHONPATH=/opt/petsc/petsc4py/lib/python/


Now is possible to open a new terminal and test petsc4py:
$python
>>> from petsc4py import PETSc
>>> A = PETSc.Mat()
>>> A
>>> A.createSeqAIJ(1000)




Hope that this info is helpful! I tested the installation in my MacBook (Dual-core), in an aluminium iMac (Dual-core),
and I hope to test the installation on a Mac pro (with two quad-core) some time this week!


I'm quite new to the list so I'm sorry if you have already discussed this topic.


Best regards,

Felipe Cruz