First disclosure: I am not much of a programmer or one that knows about sys admin in Irix. :(
I am trying to compile a set of C and Fortran 90 programs for engineering calculations in my Octane 2 that has 2x 400 MHz CPUS. I want to use the SGI Scientific Library called SCSL for solving large sparse matrices. I was instructed to link with '-lscs_mp' to run the code in multi-threading mode. Compilation with gmake and gcc 4.7.1 was successful. However when I run the executable I get the error:
Code:
trying to sprocsp: Operation not permitted
This happens just before the attempt to factor the matrix and a call is made to use the library 'lcsc_mp'.
There is no error if I just compile with '-lscs'.
The program I am compiling uses pthreads. I have been digging around and I found this statement in Irix manpage for lscs:
Quote:"The -lscs_mp option directs the linker to use the multi- processor version of the library. The multi-processor version of SCSL, libscs_mp, is a Shared Memory (SMP) version that is based on libmp. libmp uses IRIX lightweight processes (sproc) to implement parallel execution. POSIX threads (pthreads) are incompatible with sproc calls. Pthreads and sproc calls have fundamentally different characteristics that prevent coexistence, such as process identity, memory, and parent-child relationships. Therefore, a program that uses the POSIX threads cannot use the multi-processor version of SCSL."
Can someone please advice or suggest what I can try that allow me to run my program to use the lscs in multi-threading mode? Much appreciated!