Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] PGI 8.0-4 doesn't like ompi/mca/op/op.h
From: Ralph Castain (rhc_at_[hidden])
Date: 2009-03-12 23:17:22


I believe I reported this before on a different mailing list, but will
repeat it here. The PGI compilers rely on the Linux kernel for some
things. We found that the ability of the PGI compilers to build OMPI,
therefore, was highly dependent upon the specific Linux kernel on the
machine.

For example, on one of our clusters, anything less than PGI 7.2-5
would not compile OMPI 1.3. The reason was that the Linux kernel on
that machine no longer had a specific function required by OMPI 1.3,
so the build system barfed. On other machines with an earlier kernel
version, it built fine with PGI 7.1.

I can look up details next week on that particular error. My point
here is to simply point out the dependency, so it is little surprise
that someone might be able to build on one machine, and not another.

Ralph

On Mar 12, 2009, at 9:09 PM, Jeff Squyres wrote:

> It's odd because PGI 7.0 and 7.1 compile OMPI just fine (don't know
> about PGI 7.2).
>
>
> On Mar 12, 2009, at 7:09 PM, Mark Potts wrote:
>
>> All,
>> I don't know PGI's compilers, but is it possible that since
>> "restrict"
>> was supposedly introduced as a C99 feature that it is not
>> supported
>> by default by their C compiler? This would explain the wording of
>> the error message which indicates interpretation of "restrict"
>> as a
>> variable name.
>>
>> Perhaps, like gcc, there is a -std=c99 option for the PGI
>> compiler?
>>
>> regards,
>>
>> George Bosilca wrote:
>> > Apparently, the PGI compiler (version 8) doesn't recognize
>> restrict as a
>> > keyword in a function prototype if the associated argument is not
>> named.
>> > There is one obvious solution: remove the restrict keyword but I
>> don't
>> > think it's the right one.
>> >
>> > Can you try to replace
>> >> typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void
>> *restrict,
>> >> void
>> *restrict,
>> >> void
>> *restrict,
>> >> int *,
>> >> struct
>> >> ompi_datatype_t **,
>> >> struct
>> >> ompi_op_base_module_1_0_0_t *);
>> >
>> > by typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void
>> *restrict
>> > in1,
>> >> void
>> *restrict in2,
>> >> void
>> *restrict
>> >> out, int *,
>> >> struct
>> >> ompi_datatype_t **,
>> >> struct
>> >> ompi_op_base_module_1_0_0_t *);
>> >
>> > Thanks,
>> > george.
>> >
>> > On Mar 11, 2009, at 15:52 , Mostyn Lewis wrote:
>> >
>> >> Compiling SVN r20757 with PGI 8.0-4 failed doing ompi_info with
>> >>
>> >> "../../../.././ompi/mca/op/op.h", line 264: error: duplicate
>> parameter
>> >> name
>> >> void
>> *restrict,
>> >> ^
>> >>
>> >> "../../../.././ompi/mca/op/op.h", line 265: error: duplicate
>> parameter
>> >> name
>> >> void
>> *restrict,
>> >> int *,
>> >> ^
>> >>
>> >> 2 errors detected in the compilation of
>> >> "../../../.././ompi/tools/ompi_info/components.cc".
>> >> make[2]: *** [components.o] Error 2
>> >> make[2]: Leaving directory
>> >> `/tmp/o/openmpi-1.4a1r20757_svn/build/ompi/tools/ompi_info'
>> >>
>> >> Code is:
>> >>
>> >> /*
>> >> * Typedef for 3-buffer (two input and one output) op functions.
>> >> */
>> >> typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void
>> *restrict,
>> >> void
>> *restrict,
>> >> void
>> *restrict,
>> >> int *,
>> >> struct
>> >> ompi_datatype_t **,
>> >> struct
>> >> ompi_op_base_module_1_0_0_t *);
>> >>
>> >> DM
>> >> _______________________________________________
>> >> users mailing list
>> >> users_at_[hidden]
>> >> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> >
>> > _______________________________________________
>> > users mailing list
>> > users_at_[hidden]
>> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>> --
>> ***********************************
>> >> Mark J. Potts, PhD
>> >>
>> >> HPC Applications Inc.
>> >> phone: 410-992-8360 Bus
>> >> 410-313-9318 Home
>> >> 443-418-4375 Cell
>> >> email: potts_at_[hidden]
>> >> potts_at_[hidden]
>> ***********************************
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> Cisco Systems
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users