help-octave
[Top][All Lists]
Advanced

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

Compile Octave to use ACML on RHEL 6.1 x86_64 with GCC 4.4.5?


From: Christopher Lott
Subject: Compile Octave to use ACML on RHEL 6.1 x86_64 with GCC 4.4.5?
Date: Wed, 01 Aug 2012 21:13:19 -0400
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120713 Thunderbird/14.0

All, I am trying to put Octave onto a RHEL 6.1 machine to help some users. I would love to get an RPM but Red Hat in their infinite wisdom don't offer recent versions; the latest octave RPM on RHN is ver 2.1.57! I did check EPEL at http://fedoraproject.org/wiki/EPEL and it has a 64-bit version of Octave 3.4.3, which I might try.

But there's the ACML issue. We like using AMD's ACML for the BLAS and LAPACK implementations because AMD provides a symmetric multi-processor ("mp") version. Using multiple cores can result in notable speedups for some computations.

So I believe to use ACML I must build from source, but have run aground. I hope you will please find time to guide me with building Octave using AMD's ACML.

I'm working on a RHEL 6.1 machine with GCC 4.4.5; gfortran similarly advertises itself as version 4.4.5. I started by downloading the latest Octave, ver 3.6.2.

I first tried using the latest ACML, version 5.1, using subdirectory gfortran64_mp_int64 which is the 64 bit version with 64-bit ints and multi processing. But running ldd on the single shared library file seems to indicate that my system is too old:

   libacml_mp.so: /usr/lib64/libgfortran.so.3: version `GFORTRAN_1.4'
       not found (required by libacml_mp.so)

What version is GFORTRAN_1.4 and how does that relate to GCC v4.4.5?? I wish I knew.

Next I went back to ACML version 4.4. Again I am using gfortran64_mp_int64, the 64bit version with 64-bit integers for symmetric multi-processing. Running ldd on the two shared library files that came from there seemed to indicate all dependencies are satisfied:

 $ ldd libacml_mv.so
        linux-vdso.so.1 =>  (0x00007fffe8277000)
        libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007fa241bb6000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa241998000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fa241607000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fa2413ff000)
        /lib64/ld-linux-x86-64.so.2 (0x000000395c400000)
 $ ldd libacml_mp.so
        linux-vdso.so.1 =>  (0x00007fff24533000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f9948bb8000)
        libacml_mv.so => /usr/lib64/libacml_mv.so (0x00007f9948969000)
libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007f9948677000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f99483f3000)
        libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f99481e5000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9947fc8000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f9947c37000)
        /lib64/ld-linux-x86-64.so.2 (0x000000395c400000)

Moving on, I tried to configure octave using this incantation:

./configure --without-curl --with-blas=acml_mp --with-lapack=acml_mp --enable-64

That yielded this error:

  configure: error: BLAS doesn't seem to support 64-bit integers. This
  is incompatible with --enable-64.

So in desperation I tried without --enable-64:

./configure --without-curl --with-blas=acml_mp --with-lapack=acml_mp

That yielded a different error:

  configure: error: A BLAS library was detected but found incompatible
  with your Fortran 77 compiler

Just for kicks and giggles, I took everything to an Ubuntu machine (12.04) running gcc 4.6.3 and everything built there like a dream. So I'm confident I have good binaries from AMD and good Octave sources. I'm increasingly convinced I have a notably bad compiler in GCC 4.4.5. But it's also possible I've missed several key steps.

I'm not a numerical analyst, I'm the acting sysadmin, and would appreciate any and all guidance. Thanks in advance!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]