Intel® oneAPI DPC++/C++ Compiler
Talk to fellow users of Intel® oneAPI DPC++/C++ Compiler and companion tools like Intel® oneAPI DPC++ Library, Intel® DPC++ Compatibility Tool, and Intel® Distribution for GDB*
706 Discussions

Runtime problem on XIOS with oneAPI icx compiler version 2022.2.0+

paolo-oliveri
Beginner
145 Views

Dear Intel community experts,

I am trying to run XIOS code from IPSL France:

https://forge.ipsl.jussieu.fr/ioserver

by using oneAPI toolkit.

The software is mainly written in C++, but it's commonly used through its C-Fortran interface, threrefore needing for both Fortran and C++ compilers.

XIOS actually compiles successfully with both Classic and LLVM compilers, while it presents runtime problems with oneAPI version >= 2022.2.0, by using ICPX as C++ compiler and more than a certain number of mpi threads.

Please note that:

   1) previous versions are not affected by this issue

    2) XIOS works correctly with icc+ifort and icc+ifx

Specifically, the xios_server.exe executable gives

free(): invalid pointer
before server.cpp call to

xios_close_context_definition

While debugging, I discovered that the error was not thrown always in the same part of code. Then I proceeded to compile the more simpler test case test_client.exe but I encountered another abnormal termination, again before call to xios_close_context_definition:

malloc(): invalid size (unsorted)

or

malloc(): unaligned fastbin chunk detected 3

malloc(): memory corruption (fast)

malloc(): unaligned tcache chunk detected

malloc(): unaligned fastbin chunk detected 3

malloc(): memory corruption (fast)

depending on the C++ compiler version.

This error can be mitigated by disabling functions inlining at compile time, with the following option

-fno-inline-functions

However, it would be useful to fix the potential bug in the compiler rather than disabling inlining.

After a deep search on the web, I found a discussion possibly related to the same issue

https://fortran-lang.discourse.group/t/c-pointer-not-nullified-using-intel-oneapi-fortran/7518

In this case the problem is the nullification of C pointers using Fortran interface that seems not to work.

Thank you!

0 Kudos
0 Replies
Reply