Software Archive
Read-only legacy content
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Offload error

Masrul
Beginner
546 Views

When i offload any program, program runs fine and result is as expected but it always give a segmentation fault error in last. The error is as following 

Error:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
a.out              0000000000404A9D  Unknown               Unknown  Unknown
libpthread.so.0    00002AAAAB7CBA00  Unknown               Unknown  Unknown
libpthread.so.0    00002AAAAB7C3878  Unknown               Unknown  Unknown
ld-linux-x86-64.s  00000035894145AB  Unknown               Unknown  Unknown
ld-linux-x86-64.s  00000035894146BE  Unknown               Unknown  Unknown
ld-linux-x86-64.s  000000358940E1B6  Unknown               Unknown  Unknown
libdl.so.2         00002AAAABD6D47F  Unknown               Unknown  Unknown
libdl.so.2         00002AAAABD6CFBF  Unknown               Unknown  Unknown
liboffload.so.5    00002AAAAB075479  Unknown               Unknown  Unknown
liboffload.so.5    00002AAAAB086DA9  Unknown               Unknown  Unknown
a.out              0000000000403F0D  Unknown               Unknown  Unknown
libc.so.6          00002AAAABA105C1  Unknown               Unknown  Unknown
libc.so.6          00002AAAABA10645  Unknown               Unknown  Unknown
libc.so.6          00002AAAAB9FA1C4  Unknown               Unknown  Unknown
a.out              0000000000403DB9  Unknown               Unknown  Unknown

Code:

MODULE HELLO_MAIN
      USE OMP_LIB
      contains
      SUBROUTINE HELLO()
          !$OMP DECLARE TARGET     
          INTEGER NTHREADS, TID

          !$OMP PARALLEL PRIVATE(NTHREADS, TID)


          TID = OMP_GET_THREAD_NUM()
#ifdef __MIC__
          PRINT *, 'Hello World from mic of thread = ', TID
#else
          PRINT *, 'Hello World from host of thread = ', TID
#endif
          IF (TID .EQ. 0) THEN
              NTHREADS = OMP_GET_NUM_THREADS()
              PRINT *, 'Number of threads = ', NTHREADS
          END IF

          !$OMP END PARALLEL

      END SUBROUTINE HELLO

END MODULE HELLO_MAIN

PROGRAM MAIN
    USE HELLO_MAIN
    USE OMP_LIB

    !$OMP TARGET DEVICE(0) 
    CALL HELLO()
    !$OMP END TARGET

    CALL HELLO()
END PROGRAM MAIN

I would be happy, if anyone help me to figure out the problem. Moreover, program does not quit itself, i need to manually quit it using ctr+D

0 Kudos
2 Replies
Sunny_G_Intel
Employee
546 Views

Hello Masrul,

I tried to reproduce the error you are getting but was unsuccessful. can you please give me some details about the compilers and MPSS you are using. 

I see the following few lines in the output:

....
....
....
 Hello World from mic of thread =          209
 Hello World from mic of thread =           53
 Hello World from mic of thread =          167
 Hello World from host of thread =           28
 Hello World from host of thread =           20
 Hello World from host of thread =           19
 Hello World from host of thread =           14
 Hello World from host of thread =            9
 Hello World from host of thread =           12
 Hello World from host of thread =           15
 Hello World from host of thread =            1
 Hello World from host of thread =           22
 Hello World from host of thread =           10
 Hello World from host of thread =            6
 Hello World from host of thread =            2
 Hello World from host of thread =           24
 Hello World from host of thread =           27
 Hello World from host of thread =           23
 Hello World from host of thread =            3
 Hello World from host of thread =           18
 Hello World from host of thread =           13
 Hello World from host of thread =           30
 Hello World from host of thread =           11
 Hello World from host of thread =            4
 Hello World from host of thread =           26
 Hello World from host of thread =            5
 Hello World from host of thread =           17
 Hello World from host of thread =           29
 Hello World from host of thread =            8
 Hello World from host of thread =            7
 Hello World from host of thread =           21
 Hello World from host of thread =           25
 Hello World from host of thread =           16
 Hello World from host of thread =            0
 Number of threads =           32
 Hello World from host of thread =           31

Thanks

0 Kudos
Masrul
Beginner
546 Views

Thanks Sunny for response. I got mentioned error in interactive job mode in our university cluster but in batch mode it ran fine. I also tried in stampede, there is no problem. May there is some bizarre problem in our university login node .

0 Kudos
Reply