Hi,

I'm trying to compile OpenMPI 1.0.2 on a Sparc/Solaris machine
with Sun Studio 11 compilers in 64 bit addressing mode.

The options I've used to configure OpenMPI are:

CC           = cc
CXX          = CC
F77          = f90
FC           = f90
CFLAGS       = -g  -xarch=v9b
CXXFLAGS     = -g  -xarch=v9b
FFLAGS       = -I. -dalign -xarch=v9b
FCFLAGS      = -I. -dalign -xarch=v9b


Configuring and compiling OpenMPI works fine.

But then a simple MPI program crashes with SIGBUS somewhere
in MPI_Init with a message:


Signal:10 info.si_errno:0(Error 0) si_code:1(BUS_ADRALN)
Failing at addr:ffffffff56400aac
*** End of error message ***


Here is the output of a debugging session with dbx:

$ dbx a.out
=> run
Reading mca_paffinity_solaris.so
Reading mca_ns_proxy.so
Reading mca_ns_replica.so
Reading mca_rml_oob.so
Reading mca_oob_tcp.so
Reading mca_gpr_null.so
Reading mca_gpr_proxy.so
Reading mca_gpr_replica.so
Reading mca_sds_env.so
Reading mca_sds_pipe.so
Reading mca_sds_seed.so
Reading mca_sds_singleton.so
Reading mca_sds_slurm.so
Reading mca_rmgr_proxy.so
Reading mca_rmgr_urm.so
Reading mca_rds_hostfile.so
Reading mca_rds_resfile.so
Reading mca_ras_dash_host.so
Reading mca_ras_hostfile.so
Reading mca_ras_localhost.so
Reading mca_ras_slurm.so
Reading mca_rmaps_round_robin.so
Reading mca_pls_daemon.so
Reading mca_pls_fork.so
Reading mca_pls_proxy.so
Reading mca_pls_rsh.so
Reading mca_pls_slurm.so
Reading mca_iof_proxy.so
Reading mca_iof_svc.so
Reading mca_allocator_basic.so
Reading mca_allocator_bucket.so
Reading mca_rcache_rb.so
Reading mca_mpool_sm.so
Reading libmca_common_sm.so.0.0.0
Reading mca_pml_ob1.so
Reading mca_pml_teg.so
Reading mca_bml_r2.so
Reading mca_btl_self.so
Reading mca_btl_sm.so
Reading mca_btl_tcp.so
Reading mca_ptl_self.so
Reading mca_ptl_sm.so
Reading mca_ptl_tcp.so
Reading mca_coll_basic.so
Reading mca_coll_self.so
Reading mca_coll_sm.so

t@1 (l@1) signal BUS (invalid address alignment) in mca_allocator_bucket_alloc_align at line 206 in file "allocator_bucket_alloc.c"
  206       chunk = segment_header->first_chunk = first_chunk;

=> where
current thread: t@1
=>[1] mca_allocator_bucket_alloc_align(mem = 0x10014e6b0, size = 96U, alignment = 128U, registration = (nil)), line 206 in "allocator_bucket_alloc.c" [2] mca_allocator_bucket_alloc_wrapper(allocator = 0x10014e6b0, size = 96U, align = 128U, registration = (nil)), line 102 in "allocator_bucket.c" [3] mca_mpool_sm_alloc(mpool = 0x10017deb0, size = 96U, align = 128U, flags = 0, registration = (nil)), line 62 in "mpool_sm_module.c" [4] mca_btl_sm_add_procs_same_base_addr(btl = 0xffffffff77815548, nprocs = 1U, procs = 0x100170df0, peers = 0x100170dd0, reachability = 0xffffffff7fffd768), line 472 in "btl_sm.c" [5] mca_bml_r2_add_procs(nprocs = 1U, procs = 0x100170df0, bml_endpoints = 0x100170e10, reachable = 0xffffffff7fffd768), line 218 in "bml_r2.c" [6] mca_pml_ob1_add_procs(procs = 0x100170d90, nprocs = 1U), line 130 in "pml_ob1.c" [7] ompi_mpi_init(argc = 1, argv = 0xffffffff7fffdc78, requested = 0, provided = 0xffffffff7fffd994), line 445 in "ompi_mpi_init.c" [8] PMPI_Init(argc = 0xffffffff7fffdbbc, argv = 0xffffffff7fffdbb0), line 71 in "pinit.c"
  [9] main(argc = 1, argv = 0xffffffff7fffdc78), line 25 in "mpi_rank.c"

=> print segment_header
segment_header = 0xffffffff56000aac
=> print sizeof( segment_header->first_chunk)
sizeof(segment_header->first_chunk) = 8
=>  print &segment_header->first_chunk
&segment_header->first_chunk = 0xffffffff56000aac
=> print  mem_options->get_mem_fn
mem_options->get_mem_fn = 0xffffffff78303428 = &mca_common_sm_mmap_seg_alloc()


BTW: there is no any problems with 32-bit installation
of OpenMPI on Sparc.


Regards
Alex Spiegel



Reply via email to