We do not support the Visual C++ environment. We've had some mixed results porting OPT++ to this environment. If you are able to port to Visual C++ please send the patches to the development team and we will include it in the next OPT++ release.
A MAC OSX port is available in OPT++2.4.
Yes. We gladly welcome new algorithmic and functional capabilities to share with our users. If you port the package to a new platform, please share the configuration files with us for future distribution.
All correspondence should be directed to the OPT++ Development Team.
In the documentation, there are instructions for setting up a main routine that "drives" OPT++. The examples in the "Setting up and Solving an Optimization Problem" section will probably be the most helpful. If you follow these instructions, but make a subroutine that's called by your program (instead of a main routine), that should do the trick. You may have to initialize the function differently than what's described in the documentation. And, finally , you will also have to link the OPT++ libraries into your program.
Currently, there is no mechanism to completely deactivate the output tracing. In the meantime, double check to be sure that the "setDebug()" method hasn't been called in your main routine. It if has, removing it will notably reduce the amount of output tracing.
There are no guarantees on thread safety, but we intend to address that issue. The serial version is probably OK, though there might be some file I/O issues. The parallel version is only as thread safe as the MPI implementation that is used.
This is an interesting enhancement and we would gladly include the feature in OPT++ if you or someone else wanted to contribute the code. It is not a high priority for the OPT++ development team, so it is unlikely that we would write the code for such a feature in the near future.
You will have to write a subroutine to solve your differential equations.
I recommend the NIPS family of optimizers. If you have analytic first and second derivatives, use OptNIPS. If you have analytic first derivatives, use OptQNIPS. If you don't have analytic derivatives, use OptFDNIPS.
The NIPS family of optimizers are the only ones which can handle linear constraints. If you have analytic derivatives and analytic Hessian, use OptNIPS. If you have analytic derivatives, use OptQNIPS. If you don't have analytic derivatives, use OptFDNIPS.
In your main routine, you need to initialize MPI at the beginning and finalize MPI at the end. Also, you want to set up your output filename such that it is unique for each process. (Or, if your function requires file I/0, you should set up a unique working directory for each process.) Otherwise, you may not be able to decipher the output, and there could be conflicts between the processes when trying to access the file. Then, use mpirun to execute your program.
Previous Section: Optimization Methods | Next Section: References | Back to the Main Page
Last revised May 1, 2007