PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

PGI 13.2 and openmpi 1.6.4
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling
View previous topic :: View next topic  
Author Message
Brad Viviano



Joined: 05 Apr 2005
Posts: 9

PostPosted: Mon Mar 11, 2013 1:03 pm    Post subject: PGI 13.2 and openmpi 1.6.4 Reply with quote

The issue I am about to describe has been brought up in the past with previous versions of PGI and openMPI, however, I am now running into the issue with 13.2 and can't figure it out.

OS: CentOS release 6.3 (Final)
PGI compiler: 13.2
openMPI: 1.6.4

Trying to configure openMPI

Code:
../openmpi-1.6.4/configure CC=pgcc CPP="pgcc -E" CXX=pgCC F77=pgf77 FC=pgfortran --with-devel-headers --with-mpi-f90-size=medium


Getting configure error:

Code:
checking for C/C++ restrict keyword... __restrict
checking for weak symbol support... yes
checking for functional offsetof macro... no
configure: WARNING: Your compiler does not support offsetof macro
configure: error: Configure: Cannot continue


Anyone have any ideas?

Thanks
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 6141
Location: The Portland Group Inc.

PostPosted: Mon Mar 11, 2013 4:15 pm    Post subject: Reply with quote

Hi Brad,

I'm able to configure OpenMP 1.6.4 without issues. Granted, I'm using CentOS 6.2 so there is a slight difference.

Quote:
...
checking size of _Bool... 1
checking for inline... inline
checking for C/C++ restrict keyword... __restrict
checking for weak symbol support... yes
checking for functional offsetof macro... yes

*** C++ compiler and preprocessor
...


Can you please look in the "config.log" file and see what the actual failure is as well as the failing code?

Thanks,
Mat
Back to top
View user's profile
Brad Viviano



Joined: 05 Apr 2005
Posts: 9

PostPosted: Tue Mar 12, 2013 5:59 am    Post subject: Reply with quote

Thanks for taking a look at this Mat, here is the information you requested out of the config.log, I will try this on an earlier CentOS release, but I want to get this working on 6.3 if possible.

The snippet from the config.log is quite lengthy and then it appears to repeat once again with the CPPFLAGS -DNO_PGI_OFFSET set for the pgcc compile the second time around:

Code:

configure:15583: checking for functional offsetof macro
configure:15596: pgcc -c -DNDEBUG -g  conftest.c >&5
PGC-S-0037-Syntax error: Recovery attempted by deleting keyword struct (conftest.c: 139)
PGC-S-0039-Use of undeclared variable foo (conftest.c: 139)
PGC-S-0039-Use of undeclared variable b (conftest.c: 139)
PGC/x86-64 Linux 13.2-0: compilation completed with severe errors
configure:15596: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Open MPI"
| #define PACKAGE_TARNAME "openmpi"
| #define PACKAGE_VERSION "1.6.4"
| #define PACKAGE_STRING "Open MPI 1.6.4"
| #define PACKAGE_BUGREPORT "http://www.open-mpi.org/community/help/"
| #define PACKAGE_URL ""
| #define OPAL_ARCH "x86_64-unknown-linux-gnu"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define OMPI_MAJOR_VERSION 1
| #define OMPI_MINOR_VERSION 6
| #define OMPI_RELEASE_VERSION 4
| #define OMPI_GREEK_VERSION ""
| #define OMPI_VERSION "4"
| #define OMPI_RELEASE_DATE "Feb 19, 2013"
| #define ORTE_MAJOR_VERSION 1
| #define ORTE_MINOR_VERSION 6
| #define ORTE_RELEASE_VERSION 4
| #define ORTE_GREEK_VERSION ""
| #define ORTE_VERSION "4"
| #define ORTE_RELEASE_DATE "Feb 19, 2013"
| #define OPAL_MAJOR_VERSION 1
| #define OPAL_MINOR_VERSION 6
| #define OPAL_RELEASE_VERSION 4
| #define OPAL_GREEK_VERSION ""
| #define OPAL_VERSION "4"
| #define OPAL_RELEASE_DATE "Feb 19, 2013"
| #define OPAL_ENABLE_PROGRESS_THREADS 0
| #define OPAL_ENABLE_MEM_DEBUG 0
| #define OPAL_ENABLE_MEM_PROFILE 0
| #define OPAL_ENABLE_DEBUG 0
| #define OPAL_WANT_PRETTY_PRINT_STACKTRACE 1
| #define OPAL_ENABLE_PTY_SUPPORT 1
| #define OPAL_ENABLE_HETEROGENEOUS_SUPPORT 0
| #define OPAL_ENABLE_TRACE 0
| #define OPAL_ENABLE_FT 0
| #define OPAL_ENABLE_FT_CR 0
| #define OPAL_WANT_HOME_CONFIG_FILES 1
| #define OPAL_ENABLE_IPV6 0
| #define OPAL_PACKAGE_STRING "Open MPI JohnDoe@FQHN-hostname Distribution"
| #define OPAL_IDENT_STRING "1.6.4"
| #define OPAL_MAX_PROCESSOR_NAME 256
| #define OPAL_MAX_ERROR_STRING 256
| #define OPAL_MAX_OBJECT_NAME 64
| #define OPAL_MAX_INFO_KEY 36
| #define OPAL_MAX_INFO_VAL 256
| #define OPAL_MAX_PORT_NAME 1024
| #define OPAL_MAX_DATAREP_STRING 128
| #define ORTE_DISABLE_FULL_SUPPORT 0
| #define ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT 0
| #define OMPI_WANT_MPI_INTERFACE_WARNING 0
| #define OMPI_GROUP_SPARSE 0
| #define OMPI_WANT_PERUSE 0
| #define OMPI_WANT_MPI_CXX_SEEK 1
| #define MPI_PARAM_CHECK ompi_mpi_param_check
| #define OPAL_CC "pgcc"
| #define STDC_HEADERS 1
| #define _GNU_SOURCE 1
| #define OPAL_C_HAVE_BUILTIN_EXPECT 1
| #define OPAL_C_HAVE_BUILTIN_PREFETCH 0
| #define OPAL_CC_USE_PRAGMA_IDENT 1
| #define OPAL_CC_USE_IDENT 0
| #define OPAL_CC_USE_PRAGMA_COMMENT
| #define OPAL_CC_USE_CONST_CHAR_IDENT 0
| #define HAVE_INT8_T 1
| #define HAVE_UINT8_T 1
| #define HAVE_INT16_T 1
| #define HAVE_UINT16_T 1
| #define HAVE_INT32_T 1
| #define HAVE_UINT32_T 1
| #define HAVE_INT64_T 1
| #define HAVE_UINT64_T 1
| #define HAVE_LONG_LONG 1
| #define HAVE_LONG_DOUBLE 1
| #define HAVE_FLOAT__COMPLEX 1
| #define HAVE_DOUBLE__COMPLEX 1
| #define HAVE_LONG_DOUBLE__COMPLEX 1
| #define HAVE_INTPTR_T 1
| #define HAVE_UINTPTR_T 1
| #define HAVE_MODE_T 1
| #define HAVE_SSIZE_T 1
| #define HAVE_PTRDIFF_T 1
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_FLOAT__COMPLEX 8
| #define SIZEOF_DOUBLE__COMPLEX 16
| #define SIZEOF_LONG_DOUBLE__COMPLEX 16
| #define SIZEOF_VOID_P 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_SSIZE_T 8
| #define SIZEOF_PTRDIFF_T 8
| #define SIZEOF_WCHAR_T 4
| #define OPAL_ALIGNMENT_BOOL 1
| #define OPAL_ALIGNMENT_INT8 1
| #define OPAL_ALIGNMENT_INT16 2
| #define OPAL_ALIGNMENT_INT32 4
| #define OPAL_ALIGNMENT_INT64 8
| #define OPAL_ALIGNMENT_CHAR 1
| #define OPAL_ALIGNMENT_SHORT 2
| #define OPAL_ALIGNMENT_WCHAR 4
| #define OPAL_ALIGNMENT_INT 4
| #define OPAL_ALIGNMENT_LONG 8
| #define OPAL_ALIGNMENT_LONG_LONG 8
| #define OPAL_ALIGNMENT_FLOAT 4
| #define OPAL_ALIGNMENT_DOUBLE 8
| #define OPAL_ALIGNMENT_LONG_DOUBLE 8
| #define OPAL_ALIGNMENT_FLOAT_COMPLEX 4
| #define OPAL_ALIGNMENT_DOUBLE_COMPLEX 8
| #define OPAL_ALIGNMENT_LONG_DOUBLE_COMPLEX 8
| #define OPAL_ALIGNMENT_VOID_P 8
| #define OPAL_NEED_C_BOOL 1
| #define SIZEOF__BOOL 1
| #define restrict __restrict
| /* end confdefs.h.  */
| #include<stddef.h>
| int
| main ()
| {
| struct foo {int a, b;}; size_t offset = offsetof(struct foo, b);
|   ;
|   return 0;
| }

configure:15615: pgcc -c -DNDEBUG -g  -DNO_PGI_OFFSET conftest.c >&5
PGC-S-0037-Syntax error: Recovery attempted by deleting keyword struct (conftest.c: 139)
PGC-S-0039-Use of undeclared variable foo (conftest.c: 139)
PGC-S-0039-Use of undeclared variable b (conftest.c: 139)
PGC/x86-64 Linux 13.2-0: compilation completed with severe errors
configure:15615: $? = 2
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Open MPI"
| #define PACKAGE_TARNAME "openmpi"
| #define PACKAGE_VERSION "1.6.4"
| #define PACKAGE_STRING "Open MPI 1.6.4"
| #define PACKAGE_BUGREPORT "http://www.open-mpi.org/community/help/"
| #define PACKAGE_URL ""
| #define OPAL_ARCH "x86_64-unknown-linux-gnu"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
.
.
.
| #define OPAL_NEED_C_BOOL 1
| #define SIZEOF__BOOL 1
| #define restrict __restrict
| /* end confdefs.h.  */
| #include<stddef.h>
| int
| main ()
| {
| struct foo {int a, b;}; size_t offset = offsetof(struct foo, b);
|   ;
|   return 0;
| }
configure:15623: result: no
configure:15625: WARNING: Your compiler does not support offsetof macro
configure:15627: error: Configure: Cannot continue

## ---------------- ##
## Cache variables. ##
## ---------------- ##
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 6141
Location: The Portland Group Inc.

PostPosted: Tue Mar 12, 2013 9:26 am    Post subject: Reply with quote

Hi Brad,

I thought I had seen this before: http://www.pgroup.com/userforum/viewtopic.php?p=6114

Though, the fix in the OpenMPI configure file is still in place so I don't know why you're seeing the same error. Can you double check that you are using the configure script that comes with 1.6.4 and not 1.3.3?

- Mat
Back to top
View user's profile
Brad Viviano



Joined: 05 Apr 2005
Posts: 9

PostPosted: Tue Mar 12, 2013 11:04 am    Post subject: Reply with quote

Hi Mat,

I double checked and I am running the configure that comes with the 1.6.4 openMPI distribution. The top of the file states:

Quote:
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for Open MPI 1.6.4.


Looking inside the configure script there is the case statement for versions 1-5 and then version 6 and up is covered by a catch all, there is nothing explicit for version 10 as you pointed out in your other thread and nothing specific for version 13.

Code:
pgCC* | pgcpp*)
            # Portland Group C++ compiler
            case `$CC -V` in
            *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
              prelink_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
                compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              old_archive_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
                $RANLIB $oldlib'
              archive_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              archive_expsym_cmds_CXX='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
            *) # Version 6 and above use weak symbols
              archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'


Hmmm what could be causing this problem that I am running into. Next I will try actually compiling that snippet of test code that checks for offsetof capability.

Thanks
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling All times are GMT - 7 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group