I build my application, and run it on 3 nodes. However, I get this error:

Sun Sep 18 22:25:11 2011[1,1]<stderr>:*** The MPI_Init_thread() function was called before MPI_INIT was invoked.Sun Sep 18 22:25:11 2011[1,1]<stderr>:*** This is disallowed by the MPI standard.Sun Sep 18 22:25:11
2011[1,1]<stderr>:*** Your MPI job will now abort.Sun Sep 18
22:25:11 2011[1,1]<stderr>:[Morpheus.OTZ:9910] Abort before
MPI_INIT completed successfully; not able to guarantee that all other
processes were killed!

I
did read some online examples, and API documentations, and nothing says
that I will need to call MPI_Init(...) *followed by*
MPI_Init_thread(...).

I have open-mpi 1.4.3 from open-mpi official site, running on Linux kernel 2.6.37.6-0.7.

I do not understand why this error is happening.

Again,
the next question is, Am I required to MPI_Init_thread everytime I
create a new thread? If yes, will this call be the first line in the
thread?