FYI, You have to specify that the argument to f is a real number:
Clear[f]; f[p1_Real] := ReturnEvalErrorP[{p1}]
ReturnEvalErrorP runs parallel using OpenMPI. Feel free to contact me if you want to know how to launch and use OpenMPI from your WSTP function.
Regards,
Gijsbert