Software Archive
Read-only legacy content
17061 Discussions

Problem attempting I/O in offloaded code

Dean_B_
Beginner
460 Views

I get the error

On the remote process, dlopen() failed. The error message sent back from the sin
k is /tmp/coi_procs/1/3686/load_lib/testprintMIC.out: undefined symbol: myprint_

On the sink, dlopen() returned NULL. The result of dlerror() is "/tmp/coi_procs/
1/3686/load_lib/testprintMIC.out: undefined symbol: myprint_"
offload error: cannot load library to the device 0 (error code 20)
Press any key to continue . . .

When running this program:

    subroutine myprint()  
    print *, "hello from mic"
    end subroutine myprint   
   
    program main
    !DIR$ ATTRIBUTES OFFLOAD:mic :: myprint
    !DIR$ OFFLOAD target(mic)
    call myprint()
    end program main

Thanks in advance for any help,

Dean

0 Kudos
1 Reply
Frances_R_Intel
Employee
460 Views

In addition to the attribute statement inside main, put one in front of the subroutine myprint. You must tell the compiler both that main is going to call the subroutine myprint on the coprocessor and  that it needs to make a version of the subroutine myprint to run on the coprocessor.

0 Kudos
Reply