Split up keeping track of best individuals between MPI threads. Now best are gathered and printed at the end of the main program.
cleaned up objective output
got rid of global var gp, made use of userData pointer
got rid of extra initialization before incoherent propagation