Dear all,
We are trying to compile ETK on ParamGanga at IIT Roorkee. The compilation stops at a very initial step and gives out the error:
*checking whether the Fortran compiler (gfortran ) works... yeschecking whether the Fortran compiler (gfortran ) is a cross-compiler... nochecking whether the Fortran compiler (gfortran ) supports TYPE(*) for CCTK_PointerTo... yeschecking how to run the C preprocessor... cppchecking for ANSI C header files... nochecking for C99 features... yeschecking for M_PI... noconfigure: error: M_PI not defined. Try adding -D_XOPEN_SOURCE to CPPFLAGS.*
We tried adding -D_XOPEN_SOURCE to CPPFLAGS, but it does not help. This error is consistent if we set up using Intel Compiler (2020 or 2019), or gcc (11 or 10). I have attached the outfile, error file, machine script, and option lists for both cases (Intel and gcc) for any reference.
Secondly, we are not allowed to compile ETK on login nodes. So we are queuing a job script, which upon execution, enters the Cactus directory, does "setup-silent", and then executes the build command. Is this the right way to compile ETK using the batch script? Or should we do something different? I have attached the shell script (compile.sh) used for sbatch queue for reference.
Thanks in advance for the help.
Regards Shamim Haque Senior Research Fellow (SRF) Department of Physics IISER Bhopal ᐧ
Hi Shamim
On Wed, May 03, 2023 at 03:11:49PM +0530, Shamim Haque 1910511 wrote:
We are trying to compile ETK on ParamGanga at IIT Roorkee. The compilation stops at a very initial step and gives out the error:
*checking whether the Fortran compiler (gfortran ) works... yeschecking whether the Fortran compiler (gfortran ) is a cross-compiler... nochecking whether the Fortran compiler (gfortran ) supports TYPE(*) for CCTK_PointerTo... yeschecking how to run the C preprocessor... cppchecking for ANSI C header files... nochecking for C99 features... yeschecking for M_PI... noconfigure: error: M_PI not defined. Try adding -D_XOPEN_SOURCE to CPPFLAGS.*
We tried adding -D_XOPEN_SOURCE to CPPFLAGS, but it does not help. This error is consistent if we set up using Intel Compiler (2020 or 2019), or gcc (11 or 10). I have attached the outfile, error file, machine script, and option lists for both cases (Intel and gcc) for any reference.
Secondly, we are not allowed to compile ETK on login nodes. So we are queuing a job script, which upon execution, enters the Cactus directory, does "setup-silent", and then executes the build command. Is this the right way to compile ETK using the batch script? Or should we do something different? I have attached the shell script (compile.sh) used for sbatch queue for reference.
I might be wrong, but setup-silent will not use your machine file which contains all the compiler flags, but will setup something "from scratch" instead. According to the logs, this will be, e.g., in
/home/shamims.iiserb/ET_debug/Cactus/repos/simfactory2/mdb/machines/cn139.iitr.ac.in.ini
My guess would be that this misses the compiler flags necessary to have M_PI defined. The best way to get this working might be to let simfactory also detect the cluster configuration on the compute nodes (where you compile), such that setup-silent is not needed, but instead the correct cluster configuration is found and used automatically. In order to do that, look at examples of 'aliaspattern' in the mdb/machines directory. An alternative would be to tell simfactory specifically that you want to use your machine configuration file.
As a side-note: I noticed the command 'patch' is missing too. This is a tool so common that it should be installed everywhere. Your admin is probably the best person to ask for advise here. It should not be too hard to install yourself, but that should not be necessary either, especially when you are told to compile on compute nodes.
Frank
Dear Frank,
I added the alias pattern for the computing nodes and now ETK can detect the cluster (checked by asking "whoami") during the batch queuing. I'll get in touch with the admins to include 'patch'.
However, the problem still persists, having assured that the correct machine file and option list are being used during the compilation.
Regards Shamim Haque Senior Research Fellow (SRF) Department of Physics IISER Bhopal
ᐧ
On Wed, May 3, 2023 at 3:49 PM Frank Loeffler frank.loeffler@uni-jena.de wrote:
Hi Shamim
On Wed, May 03, 2023 at 03:11:49PM +0530, Shamim Haque 1910511 wrote:
We are trying to compile ETK on ParamGanga at IIT Roorkee. The compilation stops at a very initial step and gives out the error:
*checking whether the Fortran compiler (gfortran ) works... yeschecking whether the Fortran compiler (gfortran ) is a cross-compiler...
nochecking
whether the Fortran compiler (gfortran ) supports TYPE(*) for CCTK_PointerTo... yeschecking how to run the C preprocessor... cppchecking for ANSI C header files... nochecking for C99 features... yeschecking for M_PI... noconfigure: error: M_PI not defined. Try adding -D_XOPEN_SOURCE
to
CPPFLAGS.*
We tried adding -D_XOPEN_SOURCE to CPPFLAGS, but it does not help. This error is consistent if we set up using Intel Compiler (2020 or 2019), or gcc (11 or 10). I have attached the outfile, error file, machine script, and option lists for both cases (Intel and gcc) for any reference.
Secondly, we are not allowed to compile ETK on login nodes. So we are queuing a job script, which upon execution, enters the Cactus directory, does "setup-silent", and then executes the build command. Is this the
right
way to compile ETK using the batch script? Or should we do something different? I have attached the shell script (compile.sh) used for sbatch queue for reference.
I might be wrong, but setup-silent will not use your machine file which contains all the compiler flags, but will setup something "from scratch" instead. According to the logs, this will be, e.g., in
/home/shamims.iiserb/ET_debug/Cactus/repos/simfactory2/mdb/machines/cn139.iitr.ac.in.ini
My guess would be that this misses the compiler flags necessary to have M_PI defined. The best way to get this working might be to let simfactory also detect the cluster configuration on the compute nodes (where you compile), such that setup-silent is not needed, but instead the correct cluster configuration is found and used automatically. In order to do that, look at examples of 'aliaspattern' in the mdb/machines directory. An alternative would be to tell simfactory specifically that you want to use your machine configuration file.
As a side-note: I noticed the command 'patch' is missing too. This is a tool so common that it should be installed everywhere. Your admin is probably the best person to ask for advise here. It should not be too hard to install yourself, but that should not be necessary either, especially when you are told to compile on compute nodes.
Frank
I notice from the output that your compiler claims "limits.h" is missing. Possibly there's something wrong with your icc setup? Maybe you should try using gcc / gfortran instead.
--Steve
On 5/3/2023 8:20 AM, Shamim Haque 1910511 wrote:
Dear Frank,
I added the alias pattern for the computing nodes and now ETK can detect the cluster (checked by asking "whoami") during the batch queuing. I'll get in touch with the admins to include 'patch'.
However, the problem still persists, having assured that the correct machine file and option list are being used during the compilation.
Regards Shamim Haque Senior Research Fellow (SRF) Department of Physics IISER Bhopal
ᐧ
On Wed, May 3, 2023 at 3:49 PM Frank Loeffler frank.loeffler@uni-jena.de wrote:
Hi Shamim On Wed, May 03, 2023 at 03:11:49PM +0530, Shamim Haque 1910511 wrote: >We are trying to compile ETK on ParamGanga at IIT Roorkee. The >compilation >stops at a very initial step and gives out the error: > >*checking whether the Fortran compiler (gfortran ) works... yeschecking >whether the Fortran compiler (gfortran ) is a cross-compiler... nochecking >whether the Fortran compiler (gfortran ) supports TYPE(*) for >CCTK_PointerTo... yeschecking how to run the C preprocessor... cppchecking >for ANSI C header files... nochecking for C99 features... yeschecking for >M_PI... noconfigure: error: M_PI not defined. Try adding -D_XOPEN_SOURCE to >CPPFLAGS.* > >We tried adding -D_XOPEN_SOURCE to CPPFLAGS, but it does not help. This >error is consistent if we set up using Intel Compiler (2020 or 2019), or >gcc (11 or 10). I have attached the outfile, error file, machine script, >and option lists for both cases (Intel and gcc) for any reference. > >Secondly, we are not allowed to compile ETK on login nodes. So we are >queuing a job script, which upon execution, enters the Cactus directory, >does "setup-silent", and then executes the build command. Is this the right >way to compile ETK using the batch script? Or should we do something >different? I have attached the shell script (compile.sh) used for sbatch >queue for reference. I might be wrong, but setup-silent will not use your machine file which contains all the compiler flags, but will setup something "from scratch" instead. According to the logs, this will be, e.g., in /home/shamims.iiserb/ET_debug/Cactus/repos/simfactory2/mdb/machines/cn139.iitr.ac.in.ini My guess would be that this misses the compiler flags necessary to have M_PI defined. The best way to get this working might be to let simfactory also detect the cluster configuration on the compute nodes (where you compile), such that setup-silent is not needed, but instead the correct cluster configuration is found and used automatically. In order to do that, look at examples of 'aliaspattern' in the mdb/machines directory. An alternative would be to tell simfactory specifically that you want to use your machine configuration file. As a side-note: I noticed the command 'patch' is missing too. This is a tool so common that it should be installed everywhere. Your admin is probably the best person to ask for advise here. It should not be too hard to install yourself, but that should not be necessary either, especially when you are told to compile on compute nodes. Frank
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Dear Steve,
I tried gcc (10 and 11) as well and I am stuck with the following error: *configure: error: M_PI not defined. Try adding -D_XOPEN_SOURCE to CPPFLAGS.*
This also happened for Intel (2020 and 2019). I have attached both the output files here.
Please ignore the out file in the first email, I have uploaded another out file by mistake. The rest of the files are correct in the first mail.
Regards Shamim Haque Senior Research Fellow (SRF) Department of Physics IISER Bhopal
ᐧ
On Wed, May 3, 2023 at 8:04 PM Steven Brandt sbrandt@cct.lsu.edu wrote:
I notice from the output that your compiler claims "limits.h" is missing. Possibly there's something wrong with your icc setup? Maybe you should try using gcc / gfortran instead.
--Steve On 5/3/2023 8:20 AM, Shamim Haque 1910511 wrote:
Dear Frank,
I added the alias pattern for the computing nodes and now ETK can detect the cluster (checked by asking "whoami") during the batch queuing. I'll get in touch with the admins to include 'patch'.
However, the problem still persists, having assured that the correct machine file and option list are being used during the compilation.
Regards Shamim Haque Senior Research Fellow (SRF) Department of Physics IISER Bhopal
ᐧ
On Wed, May 3, 2023 at 3:49 PM Frank Loeffler frank.loeffler@uni-jena.de wrote:
Hi Shamim
On Wed, May 03, 2023 at 03:11:49PM +0530, Shamim Haque 1910511 wrote:
We are trying to compile ETK on ParamGanga at IIT Roorkee. The compilation stops at a very initial step and gives out the error:
*checking whether the Fortran compiler (gfortran ) works... yeschecking whether the Fortran compiler (gfortran ) is a cross-compiler...
nochecking
whether the Fortran compiler (gfortran ) supports TYPE(*) for CCTK_PointerTo... yeschecking how to run the C preprocessor...
cppchecking
for ANSI C header files... nochecking for C99 features... yeschecking for M_PI... noconfigure: error: M_PI not defined. Try adding -D_XOPEN_SOURCE
to
CPPFLAGS.*
We tried adding -D_XOPEN_SOURCE to CPPFLAGS, but it does not help. This error is consistent if we set up using Intel Compiler (2020 or 2019), or gcc (11 or 10). I have attached the outfile, error file, machine script, and option lists for both cases (Intel and gcc) for any reference.
Secondly, we are not allowed to compile ETK on login nodes. So we are queuing a job script, which upon execution, enters the Cactus directory, does "setup-silent", and then executes the build command. Is this the
right
way to compile ETK using the batch script? Or should we do something different? I have attached the shell script (compile.sh) used for sbatch queue for reference.
I might be wrong, but setup-silent will not use your machine file which contains all the compiler flags, but will setup something "from scratch" instead. According to the logs, this will be, e.g., in
/home/shamims.iiserb/ET_debug/Cactus/repos/simfactory2/mdb/machines/cn139.iitr.ac.in.ini
My guess would be that this misses the compiler flags necessary to have M_PI defined. The best way to get this working might be to let simfactory also detect the cluster configuration on the compute nodes (where you compile), such that setup-silent is not needed, but instead the correct cluster configuration is found and used automatically. In order to do that, look at examples of 'aliaspattern' in the mdb/machines directory. An alternative would be to tell simfactory specifically that you want to use your machine configuration file.
As a side-note: I noticed the command 'patch' is missing too. This is a tool so common that it should be installed everywhere. Your admin is probably the best person to ask for advise here. It should not be too hard to install yourself, but that should not be necessary either, especially when you are told to compile on compute nodes.
Frank
Users mailing listUsers@einsteintoolkit.orghttp://lists.einsteintoolkit.org/mailman/listinfo/users
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
users@lists.einsteintoolkit.org