[Numpy-discussion] 64-bit windows numpy / scipy wheels for testing
Sturla Molden
sturla.molden at gmail.com
Mon Apr 28 16:44:53 EDT 2014
On 28/04/14 18:21, Ralf Gommers wrote:
> No problems thus far, but I only installed it yesterday. :-)
>
>
> Sounds good. Let's give it a bit more time, once you've given it a good
> workout we can add that those gfortran 4.8.x compilers seem to work fine
> to the scipy build instructions.
I have not looked at building SciPy yet, but I was able to build MPICH
3.0.4 from source without a problem. I worked on the first attempt
without any error or warnings. That is more than I hoped for...
Using BLAS and LAPACK from Accelerate also worked correctly with flags
-ff2c and -framework Accelerate. I can use it from Python (NumPy) with
ctypes and Cython. I get correct results and it does not segfault.
(It does segfault without -ff2c, but that is as expected, given that
Accelerate has f2c/g77 ABI.)
I was also able to build OpenBLAS with Clang as C compiler and gfortran
as Fortran compiler. It works correctly as well (both the build process
and the binaries I get).
So far it looks damn good :-)
The next step is to build NumPy and SciPy and run some tests :-)
Sturla
P.S. Here is what I did to build MPICH from source, for those interested:
$./configure CC=clang CXX=clang++ F77=gfortran FC=gfortran
--enable-fast=all,O3 --with-pm=gforker --prefix=/opt/mpich
$ make
$ sudo make install
$ export PATH="/opt/mpich/bin:$PATH" # actually in ~/.bash_profile
Now testing with some hello worlds:
$ mpif77 -o hello hello.f
$ mpiexec -np 4 ./hello
Hello world
Hello world
Hello world
Hello world
$ rm hello
$ mpicc -o hello hello.c
$ mpiexec -np 4 ./hello
Hello world from process 0 of 4
Hello world from process 1 of 4
Hello world from process 2 of 4
Hello world from process 3 of 4
The hello world programs looked like this:
#include <stdio.h>
#include <mpi.h>
int main (int argc, char *argv[])
{
int rank, size;
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Comm_size (MPI_COMM_WORLD, &size);
printf( "Hello world from process %d of %d\n", rank, size);
MPI_Finalize();
return 0;
}
program hello_world
include 'mpif.h'
integer ierr
call MPI_INIT(ierr)
print *, "Hello world"
call MPI_FINALIZE(ierr)
stop
end
More information about the NumPy-Discussion
mailing list