Obtaining SimX
==============
The latest working version of SimX can be downloaded from the 
SimX GitHub page at
http://github.com/sim-x/simx

You can download SimX  sources as a zip file, or check it out via 
anonymous git using the following  command

git clone http://github.com/sim-x/simx.git

SimX can also be downloaded from the Python package index site at
https://pypi.python.org/pypi/simx

SimX Requirements
=================

Detailed installation instructions are available at http://simx.lanl.gov/install.html

Pre-built packages are available for Fedora Linux. See http://simx.lanl.gov/install.html
for more details.

SimX can also be built from source. Most of Simx is written in C++ ; the
SimX build system uses Python's setuptools along with CMake for
determining platform specific configuration parameters. In addition to
a C++ compiler and Python (>=2.4 ) you will need the following 
packages installed prior to building SimX

- CMake (>=2.6)
- Boost C++ library ( >= 1.35)
- MPICH implementation of MPI (required for parallel simulations. See below for building without MPI)

SimX also uses a Python package called greenlets for process oriented 
simulations; this will be automatically installed while building SimX.


Installing SimX
===============

To build and install SimX, change to the source root directory and type

python setup.py install

This will build SimX and install it to the appropriate Python site-packages
directory.

If you do not have write permissions to the system Python directories,  try:

python setup.py install --user 

This will build and install SimX under the user's home directory. Python
2.6 or higher is required for user mode installation.

MPI Support
-----------

By default, SimX expects a working MPI installation to be present
on your system since  MPI is required for parallel simulations. If you do not have
MPI or, for some reason, do not wish to enable parallel simulations, type

python setup.py build --without-mpi
python setup.py install


Other Options
-------------

By default SimX is built with the bundled SSF library 
(www.primessf.net/minissf) for message passing and synchronization. 
SimX can also be built with its own native message passing library.

For this, do the following:

python setup.py build --without-ssf
python setup.py install

Depending on your computational setup and simulation needs, 
one or the other might perform better.  

Using SimX
==========

See the examples directory for some simple python simulation applications that use the 
SimX APIs. More information on setting up a simulation using SimX is available at 
http://simx.lanl.gov/getting-started.html
