[Nek5000-users] Compilation error

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Wed May 25 12:36:32 CDT 2011


It's not a good idea to use -qautodbl=dbl4 instead of qrealsize=8.
This option makes both default REAL and DOUBLE PRECISION be 8 byte
quantities. Beware, however, that this option also makes anything
declared REAL*4 be 8bytes. This is an issue because some MPI messages
will be truncated as the message size is computed based on the
assumption that a REAL*4 variable is 4bytes

Can you try to run nek with the debugger to see why you run into a SEGFAULT?

-Stefan


On 5/25/11, nek5000-users at lists.mcs.anl.gov
<nek5000-users at lists.mcs.anl.gov> wrote:
> Thanks for the tip, it now works at least for serial calculation. Note
> furthermore that, using the xlf compiler from ibm, I also had to change
> -qrealsize=8 into -qautodbl=dbl4 in order to avoid a segmentation fault.
>
> I am now trying to compile to it for parallel calculation, thus I specified
> mpxlf_r and mpcc_r in F77 and C fields in makenek. However I get the
> following message as soon as I start the compilation:
>
>>>> ./makenek stenosis
>>>> makenek - automatic build tool for Nek5000
>>>> ** test   === End of Compilation 1 ===
>>>> 1501-510  Compilation successful for file test_f77.f.
>>>> llsubmit: Processed command file through Submit Filter:
>>>> "/usr/local/loadl/Fidris/llsubmit_exit".
>>>> ** underscore_test   === End of Compilation 1 ===
>>>> 1501-510  Compilation successful for file test_underscore.f.
>>>> ERROR: Unable to detect compiler!
>>>>         - don't know how to promote datatype REAL to 8 bytes
>>>>         - don't know how to invoke the C pre-processor (CPP) before
>>>> compilation
>>>>        Please edit the makefile and specify the requested compiler flags
>>>> using the P variable.
>
>
> I presume it is a fairly simple error to solve, but I am not familiar at all
> with such massively parallel calculators yet [?]
>
> Best regards,
> JC
> On 24 May 2011 16:20, <nek5000-users at lists.mcs.anl.gov> wrote:
>>
>>
>> Dear Jean-Christophe,
>>
>> etime is a fairly std. timer function, but obviously not
>> supported with your compiler.
>>
>> When using mpi, it uses instead the mpi timer, so there is no
>> issue.
>>
>> The quick fix here would be to edit mpi_dummy.f and change
>> the etime() reference therein to the ibm timer function.
>>
>> You might also try setting it zero - but I'm not 100% certain
>> that there are no divisions involving time in the denominator...
>> It's worth a try, however.
>>
>> Paul
>>
>>
>>
>>
>> On Tue, 24 May 2011, nek5000-users at lists.mcs.anl.gov wrote:
>>
>>> Hi Nek's,
>>>
>>> Up to now I have compiled and run the code on the various workstations
>>> available in my lab. I am now trying to compile it (only in serial for
>>> the
>>> moment) on an IBM Power 6 (
>>> http://www.idris.fr/su/Scalaire/vargas/hw-vargas.html) but I encounter an
>>> error (which is the reason why I do not compile it using mpi support
>>> yet). Following is the outpost from the compilation:
>>>
>>> xlf_r -qsuppress=cmpmsg -o nek5000  obj/stenosis.o obj/drive.o
>>> obj/drive1.o
>>> obj/drive2.o obj/plan4.o obj/bdry.o obj/coef.o obj/conduct.o
>>> obj/connect1.o
>>> obj/connect2.o obj/dssum.o obj/edgec.o obj/eigsolv.o obj/gauss.o
>>> obj/genxyz.o obj/navier1.o obj/makeq.o obj/navier0.o obj/navier2.o
>>> obj/navier3.o obj/navier4.o obj/prepost.o obj/speclib.o obj/map2.o
>>> obj/turb.o obj/mvmesh.o obj/ic.o obj/ssolv.o obj/planx.o obj/math.o
>>> obj/mxm_wrapper.o obj/hmholtz.o obj/gfdm_par.o obj/gfdm_op.o
>>> obj/gfdm_solve.o obj/subs1.o obj/subs2.o obj/genbox.o obj/gmres.o
>>> obj/hsmg.o
>>> obj/convect.o obj/induct.o obj/perturb.o obj/navier5.o obj/navier6.o
>>> obj/navier7.o obj/navier8.o obj/fast3d.o obj/fasts.o obj/calcz.o
>>> obj/byte.o
>>> obj/chelpers.o obj/byte_mpi.o obj/postpro.o obj/cvode_driver.o
>>> obj/nek_comm.o obj/init_plugin.o obj/setprop.o obj/qthermal.o
>>> obj/cvode_aux.o obj/makeq_aux.o obj/papi.o obj/ssygv.o obj/dsygv.o
>>> obj/mxm_std.o obj/blas.o obj/comm_mpi.o obj/mpi_dummy.o obj/singlmesh.o
>>> obj/jl2_gs.o obj/jl2_sort.o obj/jl2_sarray_transfer.o
>>> obj/jl2_sarray_sort.o
>>> obj/jl2_gs_local.o obj/jl2_crystal.o obj/jl2_comm.o obj/jl2_tensor.o
>>> obj/jl2_fail.o obj/jl2_fcrystal.o obj/jl_tuple_list.o obj/jl_transfer.o
>>> obj/jl_sort.o obj/jl_fcrystal.o obj/jl_errmem.o obj/jl_crystal.o
>>> obj/jl2_findpts.o obj/jl2_findpts_local.o obj/jl2_obbox.o obj/jl2_poly.o
>>> obj/jl2_lob_bnd.o obj/jl2_findpts_el_3.o obj/jl2_findpts_el_2.o
>>> obj/jl2_sparse_cholesky.o obj/jl2_xxt.o obj/jl2_fcrs.o
>>> ld: 0711-317 ERROR: Undefined symbol: .etime
>>> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
>>> information.
>>> gmake: *** [nek5000] Error 8
>>>
>>> Attached is the whole compiler.out file also. Does anyone have an idea?
>>>
>>> Regards,
>>>
>>> --
>>> Jean-Christophe
>>>
>> _______________________________________________
>> Nek5000-users mailing list
>> Nek5000-users at lists.mcs.anl.gov
>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>
>
>
>
> --
> Jean-Christophe
>



More information about the Nek5000-users mailing list