Skip to content

Optimization using MPI parallel Latin hypercube sampling and BOBYQA

License

Notifications You must be signed in to change notification settings

maxEntropyProd/hyperBOB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

hyperBOB

Optimization using MPI parallel Latin hypercube sampling and BOBYQA

hyperBOB is a Fortran subroutine that uses MPI to run embarrassingly parallel instances of the derivative-free box-bounded optimizer BOBYQA. Each instance of BOBYQA will be called using a different initial condition, where the initial conditions are obtained from Latin hypersquares. All available processes in MPI_COMM_WORLD will be used, so the more MPI processes available, the greater the coverage. There is no guarantee it will locate a global optimum, which is highly dependent on the number of processes used, the dimension of the function being sampled, and the number of local optima in the hypersurface. It will return the best solution found, but all solutions are available in xMat_hyperBOB and fVal_hyperBOB.

hyperBOB_initialize must be called first to allocate xMat_hyperBOB and fVal_hyperBOB.

Once xMat_hyperBOB and fVal_hyperBOB are no longer needed, they can be deallocated by calling hyperBOB_cleanUp.

A simple test program is included in EggholderFcnTest.f90

DOI