Quantcast
Channel: Intel® Many Integrated Core Architecture
Viewing all articles
Browse latest Browse all 1347

code producing segmentation fault on offload with -openmp option

$
0
0

Hi all

My code has a module state_test which makes a call to state.

On offloading the call to state I get a segfault.

Here is the call to state

!dir$ offload begin target(mic:0)in(TRCR)out(RHOK1,RHOK2,RHOK3,RHOK4)
      call state(k,kk,TRCR(:,:,:,1), TRCR(:,:,:,2), this_block,RHOK1,RHOK2,RHOK3,RHOK4)
!dir$ end offload

However when offload is performed without the -openmp option it works fine.

Here is the compile line that segfaults.

ifort state_test.F90 state_mod.F90 -openmp

[Offload] [HOST]          [State]           Initialize logical card 0 = physical card 0
[Offload] [HOST]          [State]           Initialize logical card 1 = physical card 1
[Offload] [MIC 0] [File]                    state_test.F90
[Offload] [MIC 0] [Line]                    22
[Offload] [MIC 0] [Tag]                     Tag 0
[Offload] [HOST]  [Tag 0] [State]           Start target
[Offload] [HOST]  [Tag 0] [State]           Setup target entry: __offload_entry_state_test_F90_22MAIN__ifort0101298585939NpI8VK
[Offload] [HOST]  [Tag 0] [State]           Host->target pointer data 0
[Offload] [HOST]  [Tag 0] [Signal]          signal : none
[Offload] [HOST]  [Tag 0] [Signal]          waits  : none
[Offload] [HOST]  [Tag 0] [State]           Host->target pointer data 23708160
[Offload] [HOST]  [Tag 0] [State]           Host->target copyin data 52
[Offload] [HOST]  [Tag 0] [State]           Execute task on target
[Offload] [HOST]  [Tag 0] [State]           Target->host pointer data 31610880
[Offload] [MIC 0] [Tag 0] [State]           Start target entry: __offload_entry_state_test_F90_22MAIN__ifort0101298585939NpI8VK
[Offload] [MIC 0] [Tag 0] [Var]             __offload_stack_ptr_MAIN__.30  NOCOPY
[Offload] [MIC 0] [Tag 0] [Var]             __offload_stack_ptr_state_dummy_$TRCR_V$1e.0  IN
[Offload] [MIC 0] [Tag 0] [Var]             __offload_stack_ptr_MAIN__.30  OUT
[Offload] [MIC 0] [Tag 0] [Var]             __offload_stack_ptr_MAIN__.30  OUT
[Offload] [MIC 0] [Tag 0] [Var]             __offload_stack_ptr_MAIN__.30  OUT
[Offload] [MIC 0] [Tag 0] [Var]             __offload_stack_ptr_MAIN__.30  OUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$K_V$22  INOUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$KK_V$20  INOUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$THIS_BLOCK_V$21  INOUT
 here
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
a.out              0000000000475591  Unknown               Unknown  Unknown
a.out              0000000000473CE7  Unknown               Unknown  Unknown
a.out              00000000004441A4  Unknown               Unknown  Unknown
a.out              0000000000443FB6  Unknown               Unknown  Unknown
a.out              0000000000426F34  Unknown               Unknown  Unknown
a.out              0000000000405A4D  Unknown               Unknown  Unknown
libpthread.so.0    000000328AC0F500  Unknown               Unknown  Unknown
libcoi_host.so.0   0000003AB0436F97  Unknown               Unknown  Unknown
libcoi_host.so.0   0000003AB0438114  Unknown               Unknown  Unknown
libcoi_host.so.0   0000003AB043821A  Unknown               Unknown  Unknown
libcoi_host.so.0   0000003AB0439149  Unknown               Unknown  Unknown
libpthread.so.0    000000328AC07851  Unknown               Unknown  Unknown
libc.so.6          000000328A4E890D  Unknown               Unknown  Unknown

Here is the compile line that works perfectly

ifort state_test.F90 state_mod.F90

[Offload] [HOST]          [State]           Initialize logical card 0 = physical card 0
[Offload] [HOST]          [State]           Initialize logical card 1 = physical card 1
[Offload] [MIC 0] [File]                    state_test.F90
[Offload] [MIC 0] [Line]                    22
[Offload] [MIC 0] [Tag]                     Tag 0
[Offload] [HOST]  [Tag 0] [State]           Start target
[Offload] [HOST]  [Tag 0] [State]           Setup target entry: __offload_entry_state_test_F90_22MAIN__ifort0102086235354lztzYz
[Offload] [HOST]  [Tag 0] [State]           Host->target pointer data 0
[Offload] [HOST]  [Tag 0] [Signal]          signal : none
[Offload] [HOST]  [Tag 0] [Signal]          waits  : none
[Offload] [HOST]  [Tag 0] [State]           Host->target pointer data 0
[Offload] [HOST]  [Tag 0] [State]           Host->target copyin data 23708172
[Offload] [HOST]  [Tag 0] [State]           Execute task on target
[Offload] [HOST]  [Tag 0] [State]           Target->host pointer data 0
[Offload] [MIC 0] [Tag 0] [State]           Start target entry: __offload_entry_state_test_F90_22MAIN__ifort0102086235354lztzYz
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$TRCR_V$1e  IN
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$RHOK4_V$1a  OUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$RHOK3_V$1b  OUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$RHOK2_V$1c  OUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$RHOK1_V$1d  OUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$K_V$22  INOUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$KK_V$20  INOUT
[Offload] [MIC 0] [Tag 0] [Var]             state_dummy_$THIS_BLOCK_V$21  INOUT
 here
 in state
  0.000000000000000E+000
   52422.4740678280     
   35057.7950417253     
   83.6184972370540     
   37.7420169087246     
   2.67158392565487     
   13963.8106092726     
   23339.2149038234     
   23339.2149038234     
 ended state
[Offload] [MIC 0] [Tag 0] [State]           Target->host copyout data   31610892
[Offload] [HOST]  [Tag 0] [CPU Time]        0.373570(seconds)
[Offload] [MIC 0] [Tag 0] [CPU->MIC Data]   23708172 (bytes)
[Offload] [MIC 0] [Tag 0] [MIC Time]        0.232588(seconds)
[Offload] [MIC 0] [Tag 0] [MIC->CPU Data]   31610892 (bytes)

Why does this happen?

 

I tried with various values of PHI_OMP_STACKSIZE and OMP_STACKSIZE from 1M,2M,4M,64M,128M to 50G.
 

It still fails why is that so?

 

Attached also is the code.

 

 

AllegatoDimensione
Downloadnew_state.tar.gz1.79 MB

Viewing all articles
Browse latest Browse all 1347

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>