Creating the executable involves Fortran compilation and linking. Any modern
Fortran compiler can be used, but to install GlobSol from scratch using your
favourite compiler involves recompiling all the Fortran code that makes up the
system. You can do this if you wish: all the source code is included.
- Summary of the installation process
Run Globsol_win-gnuJDP.exe . It does not matter where the file is
when you run it. It will do these steps:
- It asks you to choose a folder to be the root folder of your
GlobSol system (default c:\GlobSol).
- It unpacks the GlobSol folders and files within the root folder.
- It looks for a folder that contains a G95 system, asking you to
specify this folder if it cannot locate it. If you "quit" instead,
it will offer to install a new G95 system in a folder that you choose.
- If you did NOT tell it to install G95, skip this step.
Otherwise, it extracts the G95 files. Say "OK" when it asks to install the
"utilities and libs" and "Cancel" when it asks to set the PATH (in spite of
being "Recommended").
You may like to view the README text when it asks you.
Finally press OK, followed by Close on the following window, to complete the
G95 installation and go to the next step.
- It opens a command window. It sets four environment variables G95ROOT,
GLOBSOLROOT, PATH and LIB_PATH appropriately, and writes the script
setup_path.bat for future use.
- It solves one of the provided test problems using the globsol
command. As this involves compiling and linking, it constitutes a basic check
that the overall system has been correctly configured.
- It opens the output file of this problem in Notepad, and terminates,
leaving the command window and the output window open for inspection and
further work.
After these steps are done, if you wish, you set permanent environment
variables, see GlobSol's environment variables.
- Learning to use GlobSol
The basic user-level commands, implemented by .BAT scripts in the GlobSol root
folder, are as follows.
| Command | Does |
| compile | Compile a general user routine
with the GlobSol libraries. |
| create_f77 | Convert a GlobSol code list to
an equivalent Fortran 77 routine. |
| fmake | Create a GlobSol code list from a
user routine. |
| globsol | Solve a complete optimization problem
given an F90 routine defining the function
and constraints, and a DT file defining
initial box data. |
| rg | Run a program that requires a
function or gradient code list, assuming the
code list is not present initially. |
| rgg | As rg but when the code
list is present initially. |
A brief explanation of these commands is below. For
full documentation see TBC.
- GlobSol's environment variables
GlobSol is run in a command window (DOS box) and requires setting up the
following environment variables (EVs):
- GLOBSOLROOT is the root folder where your GlobSol system resides.
- G95ROOT is the root folder where your G95 compiler resides.
- PATH is the list of the folders where the system searches for
executables.
- LIBRARY_PATH lists the folders where G95 searches for binary
library files.
Choices
There are several ways to set these EVs. First, you can set them anew each
time you open a command window. During installation a script
setup_path.bat is created in the GlobSol root folder, that performs
this task. It sets up a "restricted environment" with PATH
and LIB_PATH that only contain folders relevant to GlobSol.
Second, you can set the EVs permanently via the System's environment variables
window (see below for instructions). If this doesn't cause name-conflicts when
searching for files, and you only want to use one version of GlobSol and G95,
this is a good choice.
A third option, of including the needed commands in an autoexec.bat
file, is useful but not considered here.
On first installation, the installer opens a command window with the correct
EV settings, solves a sample problem, and leaves the window open for you to do
further GlobSol work in.
In Windows XP, right-click on a My Computer icon and select Properties; select
the Advanced tab; click the Environment Variables button. You can set an EV
either in the User Variables panel of this window or (assuming you have power
user privileges) in the System Variables panel. In the latter case the
settings apply to all users; in either case they apply to all DOS windows
opened subsequently.
Set GLOBSOLROOT and G95ROOT as given in the setup_path.bat
file.
For LIBRARY_PATH add the entries
%G95ROOT%\lib;%GLOBSOLROOT%\executables; (anywhere in the
list.)
For PATH add the entries %G95ROOT%\bin;%G95ROOT%\lib\gcc-lib\i686-pc-mingw32\4.1.1;%GLOBSOLROOT%;%GLOBSOLROOT%\executables; .
Subsequent runs of GlobSol
If you chose the first way to set the relevant EVs, you need to run
setup_path.bat each time you open a command window.
With the second way this is not necessary.
Either way, GlobSol commands should then work, whatever folder you
subsequently move to.
- More about the GlobSol commands
BAKER: please contribute.
-
Information on the installation tools and GlobSol
All tools used to create the GlobSol executable are freely distributable
under the GNU
General Public License. The tools are:
-
7-zip, used to make the self-extracting
archive in which the Windows-gnu version of GlobSol is distributed.
ADD WINRAR TO THIS LIST IF NECESSARY.
-
The GNU Fortran 95 compiler, the
file g95-MinGW-41.exe, a self-extracting version for native Windows (without
linux emulation and with version 4.1 of gcc) is distributed with GlobSol
and installed on the recipient's machine.
-
A native version of GNU make,
mingw32-make.exe,
is distributed with GlobSol, and is used to build the GlobSol executables.
GlobSol itself began as an individual project of mine (R. Baker Kearfott),
and proceeded with contributions from my graduate students, partially with
funding from the U.S. National Science Foundation. The first code,
upon which the precursor to GlobSol was modelled, was the ACM TOMS algorithm
INTBIS.
The precursor to GlobSol, called INTOPT-90 (with many of GlobSol's components)
is described in my book,
Rigorous
Global Search: Continuous Problems. Later, GlobSol was
refined and packaged with the help of a SunSoft Cooperative Research and
Development Contract; George Corliss, Chenyi Hu, et al. are worthy
of mention in this context, and we thank Bill Walster for support.
It was during this phase that GlobSol obtained its present name, was put
into a somewhat more user-friendly form, and was subjected to more formal
software certification techniques. It was during the SunSoft project
that we studied the issue of constraints in verified optimization more
thoroughly, and we applied GlobSol to a number of practical problems.
This packaging resulted from discussions with Eva Dyllong, during her
visit to Lafayette in January, 2007.
- Disclaimers, future plans, and additional
credits
The default compilation obtained by following the above steps is without
compile-time machine code optimization. I have noticed that the GNU
Fortran compiler bundled with GlobSol-win-gnu.exe nonetheless seems to
compile somewhat more slowly than the DEC/Compaq/HP compiler (Version 6.6)
that I have been using within the Windows environment. Also, I believe
that, on Solaris systems, the Sun compiler probably does a better job of
optimization. (People are welcome to do comparisons.) Nonetheless,
I have seen no problems with the GNU compiler, and am grateful for its
existence, especially in its self-contained native Windows package.
The version of GlobSol supplied in GlobSol-win-gnu.exe is essentially
a version from late 2003. Since then, I have been researching and
developing more efficient algorithms within the GlobSol environment.
This has resulted in algorithms that, for some problems, are much faster
than those in the present distribution version. However, there are
various packaging issues to be resolved, and I desire to clean and simplify
the code more before a public distribution.
Here are my present plans:
-
Simplify my experimental version of GlobSol in preparation for packaging,
then resolve packaging and licensing issues.
-
Resolve certain other issues, including supply of correctly rounded output.
-
Package and release a new version of GlobSol
Subsequently, I have the following in mind:
-
Supply a MATLAB / INTLAB interface to GlobSol.
-
Supply a C / C++ interface to GlobSol.
-
Supply a version of GlobSol in executable form. In this context,
I envision converting AMPL or GAMS
format directly into GlobSol's internal format (a "codelist" file *.CDL),
without needing to compile a Fortran program that defines the function.
This conversion possibly can use work from the European
COCONUT
project. In this context, I wish to thank Arnold Neumaier for inviting
me to Vienna in December, 2006, to the Erwin
Schrödinger Institute for supporting me, to Ferenc Domes and,
especially, to Hermann Schichl for supplying a converter that converts
the COCONUT internal format directly to the GlobSol internal format.
-
Standardize GlobSol's arithmetic, etc. For example, with implementation
of the C++
standardization committee's technical report on interval arithmetic
in C++, then it would be sensible to use that as interval
arithmetic. In this context, integration into our Interval
Subroutine Library project (ISL) could be useful.
-
Provide more complete and up-to-date documentation.
These plans depend on my finding sufficient time among my other duties
and projects. These plans could be facilitated by funding.