[petsc-users] Building Linux 32-bit PETSc lib

Matthew Knepley knepley at gmail.com
Thu Jan 9 15:37:45 CST 2014


On Thu, Jan 9, 2014 at 3:32 PM, Qin Lu <lu_qin_2000 at yahoo.com> wrote:

> Can I specify the what version of Hypre to download? Do I need to use
> --with-hypre=1 and specify --with-hypre-dir? It will be nice if you may
> point me to a sample setting of configure options using --download-hypre.
>

No. That is the only option.

   Matt


>
> Thanks,
> Qin
>
>
>   On Thursday, January 9, 2014 3:07 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>  On Thu, Jan 9, 2014 at 3:05 PM, Qin Lu <lu_qin_2000 at yahoo.com> wrote:
>
> Is the linker ld compitable with Intel compilers?
>
> If I use --download-hypre=1, will it download the 32-bit Hypre lib that is
> consistent with my MPI lib and my PETSc lib built with Intel compilers?
>
>
> It will build it from source.
>
>    Matt
>
>
>
> Thanks,
> Qin
>
>
>   On Thursday, January 9, 2014 11:43 AM, Satish Balay <balay at mcs.anl.gov>
> wrote:
>  Well the compiler [ld] doesn't appear to like the hypre library you
> built.
>
> What do you have for:
>
> file /d/dev01/qlu/Lib/hypre-2.8.0b/LINUX_32/lib/libHYPRE.a
>
> Why not use --download-hypre=1 ?
>
> Satish
>
> On Thu, 9 Jan 2014, Qin Lu wrote:
>
> > Now it got new problem later in configure: it does not like the Hypre
> lib :"Possible ERROR while running linker: ld: skipping incompatible
> /d/dev01/qlu/Lib/hypre-2.8.0b/LINUX_32/lib/libHYPRE.a when searching for
> -lHYPRE". Please see the attached log file for details.
> >
> > I built the Hypre-2.8.0b using the same Intel compilers as PETSc.
> >
> > Thanks for any ideas,
> > Qin
> >
> >
> >
> > On Thursday, January 9, 2014 9:25 AM, Qin Lu <lu_qin_2000 at yahoo.com>
> wrote:
> >
> > Thanks a lot for pointing out the problem. Configure passed it after I
> set the path of libirc.so.
> >
> > Regards,
> > Qin
> >
> >
> >
> > On Wednesday, January 8, 2014 4:25 PM, Satish Balay <balay at mcs.anl.gov>
> wrote:
> >
> > > ('Linux', 'houhpclc01', '2.6.18-308.4.1.el5', '#1 SMP Tue Apr 17
> 17:08:10 EDT 2012', 'i686', 'i686')
> >
> > the machine appears to to be running 32bit linux - so I'm not sure why
> it has a 64bit libirc.so
> >
> > [and the paths linker is referencing to are 32bit library paths]
> >
> > The workarround to try [for intel compilers] is:
> >
> > --with-clib-autodetect=0 --with-fortranlib-autodetect=0
> --with-cxxlib-autodetect=0 LIBS="-Bstatic -lifcore -Bdynamic"
> >
> > Satish
> >
> >
> > The On Wed, 8 Jan 2014, Barry Smith wrote:
> >
> > >
> > >   Here is how icc is linking a C main program:
> > >
> > > ld    --eh-frame-hdr -dynamic-linker /lib/ld-linux.so.2 -m elf_i386 -o
> /tmp/petsc-3SW45q/config.compilers/conftest
> -L/apps/compilers/intel/Compiler/11.1/056/lib/ia32
> >  -L/usr/lib/gcc/i386-redhat-linux/4.1.2/
> -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../ -L/lib/ -L/usr/lib
> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crt1.o
> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crti.o
> /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbegin.o
> /tmp/petsc-3SW45q/config.compilers/conftest.o -ldl -Bstatic -limf -lsvml
> -Bdynamic -lm -Bstatic -lipgo -ldecimal -Bdynamic -lgcc_s -lgcc -Bstatic
> -lirc -Bdynamic -lc -lgcc_s -lgcc -Bstatic -lirc_s -Bdynamic -ldl -lc
> /usr/lib/gcc/i386-redhat-linux/4.1.2/crtend.o
> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crtn.o
> > >
> > >    Since PETSc uses C if you use Fortran it needs to link against this
> same stuff with the intel Fortran linker. We try to rationalize the above
> list and get
> > >
> > > Libraries needed to link C code with another linker: ['-ldl',
> '-L/apps/compilers/intel/Compiler/11.1/056/lib/ia32',
> >  '-L/usr/lib/gcc/i386-redhat-linux/4.1.2', '-limf', '-lsvml', '-lipgo',
> '-ldecimal', '-lgcc_s', '-lirc', '-lirc_s',
> '-L/apps/compilers/intel/Compiler/11.1/056/lib/ia32',
> '-L/usr/lib/gcc/i386-redhat-linux/4.1.2’]
> > >
> > > So when it uses ifort to link something it uses
> > >
> > > /apps/compilers/intel/Compiler/11.1/056/bin/ia32/ifort  -o
> /tmp/petsc-3SW45q/config.setCompilers/conftest    -O3
> /tmp/petsc-3SW45q/config.setCompilers/conftest.o -ldl
> -L/apps/compilers/intel/Compiler/11.1/056/lib/ia32
> -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -limf -lsvml -lipgo -ldecimal
> -lgcc_s -lirc -lirc_s -L/apps/compilers/intel/Compiler/11.1/056/lib/ia32
> -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -ldl
> > >
> > > which when running the code results in
> > >
> > > ERROR while running executable: Could not execute
> >  "/tmp/petsc-3SW45q/config.setCompilers/conftest":
> > > /tmp/petsc-3SW45q/config.setCompilers/conftest: error while loading
> shared libraries: libirc.so: wrong ELF class: ELFCLASS64
> > >
> > > Because the -Bstatic are stripped from the link line the wrong
> libirc.so gets picked up by the linker resulting in the runtime error.
> > >
> > > I’ve seen these perverse icc link lines mess things up before but
> don’t remember a solution. Satish must remember!
> > >
> > > Is there a reason to use the 32bit version?  Have you tried using the
> 64 bit compilers ? Generally I don’t think there is a reason to use 32bit
> now a days.
> > >
> > > Barry
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Jan 8, 2014, at 3:21
> >  PM, Qin Lu <lu_qin_2000 at yahoo.com> wrote:
> > >
> > > > Hello,
> > > >
> > > > I am trying to build a Linux 32-bit PETSc lib. I first built
> python-2.7.5 in a 32-bit Linux workstation without problem, then used this
> python to configure PETSc-3.4.2 with Intel C/C++/Fortran compilers, it got
> the following error:
> > > >
> > > >
> ===============================================================================
>
>   TESTING: checkCLibraries from
> >  config.compilers(config/BuildSystem/config/compilers.py:161)
>
> *******************************************************************************
> > > >                     UNABLE to EXECUTE BINARIES for ./configure
> > > >
> -------------------------------------------------------------------------------
> > > > Cannot run executables created with FC. If this machine uses a batch
> system
> > > > to submit jobs you will need to configure using ./configure with the
> additional option  --with-batch.
> > > >  Otherwise there is problem with the compilers. Can you compile and
> run code
> >  with your C/C++ (and maybe Fortran) compilers?
> > > > See http://www.mcs.anl.gov/petsc/documentation/faq.html#libimf
> > > >
> *******************************************************************************
> > > >
> > > > It seems that a test program built with the given Intel ifort does
> not run. But I have built another program using ifort in the same
> workstation and it runs fine.
> > > >
> > > > Please see the attached configure.log file for details.
> > > >
> > > > Thanks for your suggestions!
> > > >
> > > > Regards,
> > > > Qin
> > > >
> > > >
> > > >
> >  <configure.log>
>
> > >
> > >
> >
>
>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140109/2003b5e9/attachment-0001.html>


More information about the petsc-users mailing list