file://<Globsol root directory>/install-win-gnuJDP.html

About this GlobSol installer.

Baker Kearfott's GlobSol is a system for solving global optimization problems in a validated way using interval arithmetic. To submit your own problem to GlobSol you need to write the problem in GlobSol's native language, Fortran. An executable program is produced, which is then run to solve the problem.

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.

However, this installer, Globsol_win-gnuJDP.exe, gets GlobSol running on any Windows PC of recent vintage, quickly and painlessly. It provides the Gnu G95 Fortran compiler, which may not be the fastest but is reliable and entirely free. You can use your existing G95 if it is already on your system. Exploiting the compatibility of binary across all Windows machines, this installer includes complete G95-compiled binary of GlobSol, so there is no need to recompile.

  1. Summary of the installation process
  2. Run Globsol_win-gnuJDP.exe . It does not matter where the file is when you run it. It will do these steps:

    1. It asks you to choose a folder to be the root folder of your GlobSol system (default c:\GlobSol).
    2. It unpacks the GlobSol folders and files within the root folder.
    3. 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.
    4. 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.
    5. 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.
    6. 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.
    7. 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.

  3. Learning to use GlobSol
  4. 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.

  5. GlobSol's environment variables
  6. GlobSol is run in a command window (DOS box) and requires setting up the following environment variables (EVs):

    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.

    If you choose to set permanent EVs

    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.

  7. More about the GlobSol commands
  8. BAKER: please contribute.

  9. Information on the installation tools and GlobSol
  10. All tools used to create the GlobSol executable are freely distributable under the GNU General Public License. The tools are:

    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.

  11. Disclaimers, future plans, and additional credits
  12. 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:

    Subsequently, I have the following in mind: These plans depend on my finding sufficient time among my other duties and projects. These plans could be facilitated by funding.