================================================ Structured Markov Chains Solver [ SMCSolver ] Dario Bini, Beatrice Meini, Sergio Steffe' bini@dm.unipi.it, meini@dm.unipi.it, steffe@dm.unipi.it Dipartimento di Matematica "Leonida Tonelli" Largo Pontecorvo 5 56127 Pisa Italy Version 1.2 - Nov 2006 =============================================== SMCSolver (STRUCTURED MARKOV CHAINS SOLVER) SMCSolver is a software tool for solving some classes of Markov Chains commonly encountered in queuing theory. It includes several algorithms to solve (following Kendall classification) M/G/1 and GI/M/1-type Markov chains, and quasi-birth-death (QBD) processes. The Version 1.1 of this software is part of a joint work submitted at SMCTOOLS, together with a similar tool written completely in Matlab (R) by Benny Van Houdt. In this package all the numerical routines are written in Fortran 90. SMCSolver has a graphical interface written in C using GTK+, for a more user friendly access to the Fortran Routines. At the present it runs on Linux Workstations only. A more detailed description on the Problems, the Algorithms and the Software can be found in the papers submitted to SMCTOOLS PISA 10 October 2006, with Version 1.1. ============================================== Compiling SMCSolver_1.2 You will need: --A Linux Workstation, complete with usual development programs like --GNU gcc, make, and --libraries and header files of gtk-2, gthread-2.0 ncurses and librt. (pkg-config --modversion gtk+-2.0 will tell you which version of gtk you have) --A Fortran 95 Compiler like Lahey/Fujitsu (R) lf95, of Intel (R) Fortran Compiler ifort or GNU g95, or NAG f90. --BLAS, LAPACK, and LAPACK95 Fortran Libraries, compiled with your Fortran Compiler, can be used; otherwise a minimum set of the BLAS, LAPACK, LAPACK95 routines is included in the directory min_blas_lapack and will be compiled and used. --the SMCSolver_1.2 sources (get the tgz from one of the authors by e-mail) Untar the sources, and change the Makefile and the make.inc uncommenting the lines for your Fortran Compiler and commenting the lines for different Fortran Compilers. Remember that the variables BLAS_LAPACK_LIB_DIR and BLAS_LAPACK_MOD_DIR must point to the directory containing your BLAS, LAPACK, LAPACK95 libraries and modules, or must point to ./min_blas_lapack for the compilation of included selected set of BLAS, LAPACK, LAPACK95 routines. Remember that usually the linker requires that a library has a name beginning with lib (like libblas.a or liblapack.a ) and refers to it with the flags -I (capital i - for modules directory), -L (for library directory), -l (lowercase l - for libraries, like -lblas -llapack) Files make.inc.lf95 make.inc.ifort make.inc.nag make.inc.g95 are provided as samples of working configurations. make will compile the program SMCSolver; make clean will delete modules, objects and the executable but not the blas, lapack, lapack95 libraries. make cleanall will detete all modules, objects, libs, and executable. Several warnings from the compilers are normal. Errors in compilation can arise from several situations: --if required, Fortran Compiler will compile a minimum selection of blas, lapack and lapack95 routines. --gcc wil compile the 9 C files, without linking. An error at this stage may point to missing headers or non standard gcc on your Linux installation, or corrupt source files. --then the Fortran Compiler will compile the 15 Fortran90 files of our program. It may fail if the Fortran Compiler lines in the Makefile are not correct for your compiler. --last step, the Fortran Compiler has to link all the objects with both static and run time libraries, and this may fail if some library is not available, or if some option in Makefile is not correct for your Fortran Compiler. The compiled program SMCSolver will need several shared run time libraries to execute and will not start if some of these are missing. Moreover several icons and graphical details of the windows are loaded dinamically from files of the running host by gtk-2. ============================================== See the file BUGS for the e-mail addresses for reporting any problem. ==============================================