Platforms supported by Ganga
Ganga is not platform dependent but some of the external component are (for example
PyQt, experiment software, Grid UI,...). Our main target are main users: CERN community and big LHC experiments. Therefore we develop and test Ganga on platforms typical for this environment (called the
default platforms). For the users of default platforms we provide automatic installation and configuration tools. Users on other platforms may use the external component pre-compiled on one of the default platforms if they are compatible, or install and configure the externals separately, or rely on the packages installed by default in their operating system.
Below, there is information useful for taking decision which platforms can be considered as default platforms.
As far as mid2006 and release 4.2, we develop and test ganga on CERN's default platform (lxplus): SLC3
However as of beginning of 2007 CERN has moved to the SLC4 platform (details below).
Default platforms and architectures
The platform strings:
name |
comments |
slc3_ia32_gcc323 |
32bit, old lxplus nodes, most of Grid WNs, also abbreviated as slc3_gcc323 |
slc4_amd64_gcc345 |
64 bit, most of lxplus nodes (however the default complier is gcc346) |
slc4_ia32_gcc345 |
32 bit, some desktops (for example Intel Pentium4 with 32 bit version of SLC4 installed |
There are two separate 64 bit architectures:
amd64 is different than
ia64. The
amd64 is used to describe several Intel processors as well (for example Pentium4). The ia64 architecture is not widely used at CERN for the time being so we ignore it.
Most of Ganga externals which have been compiled on
slc3_ia32_gcc323
may run on SLC4 platform (
slc4_amd64_gcc345
and
slc4_ia32_gcc345
) BUT the 32bit python interpreter must be used. In the case of
GangaGUI the 32bit version of Python2.3 is specified as an external component and setup automatically at Ganga startup (via the re-exec mechanism in Ganga/Runtime/bootstrap.py). This assures that the 32bit libraries such as Qt are loaded OK. In other cases (
GangaLHCb,GangaAtlas), the python interpreter which is currently in the PATH is used. The PATH may be (and actually is) messed-up by many other tools such as: LCG UI setup, DQ2 setup, cmt. In such a case we do not have a way of automatically determining the platform/architecture and loading of some ganga externals (e.g. python extension modules) may be problematic.
Additional problem occurs for some external components (such as
PyCurl used by DQ2 in
GangaAtlas) which may not work correctly across the SLC3/SLC4 boundary.
There are two solutions to this problem:
- fix a given 32-bit python version, specify it as a dependency and always do the re-exec trick (this however may not help in the SLC3/SLC4 boundary problem)
- whenever possible, use the default python interpreter (from the system or from the PATH) and try to detect the platform/architecture to setup the externals correctly
If the automatic platform detection is implemented we could use the following strategy:
- use
platform
module (available in python2.3+) to detect the platform
- if
platform
module not available, use /etc/issue
to detect the Linux distribution and sys.maxint
to determine the 32 or 64 bits
In principle the same mechanism could be used by ganga-install to find out the platform string automatically. If the platform cannot be determined, then it would just assume the most typical one (for example
scl4_ia32_gcc345
).
Current CERN platform SLC4
- CERN platform: SLC4 Python2.3.4/gcc3.4.5
- Ganga seems to run OK (also GUI)
- Problem with help text. Monitor progress of bug12854
.
- testing machine: lx32slc4.cern.ch
- ATLAS moving to Python 2.4 (mid2006)
- The ATLAS login scripts do not seem to affect the Python versions i.e. the local version is used. But if you set up the runtime environment in addition with: source $SITEROOT/AtlasOffline/12.0.1/AtlasOfflineRunTime/cmt/setup.sh you pick up Python v2.4.2
Other popular distributions
name |
Python |
gcc |
status |
comments |
contributor |
FC5 |
2.4.3 |
gcc 4.1.1 |
OK |
default Qt installation. GangaPlotter requires installation of python-matplotlib |
ulrik |
FC3 |
2.3.4 |
gcc 3.4.4 |
|
|
|
OSX 10.3 (Panther) |
2.3 |
gcc3.3 |
|
See Mac OS X note below. |
|
OSX 10.4 (Tiger) |
2.3.5 |
gcc4.0 |
|
See Mac OS X note below. Ready made dmg images are also available for Python2.4.3/gcc4.0.1 |
|
SL4.3 |
2.3.4 |
3.4.5 |
|
SLC 3.0.6 |
2.2.3 |
3.2.3 |
OpenSuse 10.0 |
2.4.1 |
4.0.2 |
Debian stable |
2.3.5 |
3.3.5 |
Next Debian release (end of 2006) will have python 2.4.x and gcc 4.1.x |
Debian testing |
2.3.5 |
gcc 3.3.5 |
Debian unstable |
python 2.3.5 |
gcc 4.1.2 |
many distros (Ubuntu) based on Debian testing/unstable. |
FC5 |
2.4.2 |
gcc 4.1.0 |
hclee |
LCG environment:
- If the grid environment script is sourced using /afs/cern.ch/project/gd/LCG-share/sl3/etc/profile.d/grid_env.sh, Python v2.3.4 is replaced by v2.4.2 (Alvin)
- If you setup the LCG/gLite 3.0 UI, you usually setup Python 2.2.3 ... (Johannes)
Mac OS X specifics:
- download Ganga without the GUI dependencies i.e. without the argument
--extern=GangaGUI
.
- have the PyQt toolkit already installed (compiled from source, use a fink version or download a prebuilt dmg image) and visible in Python before running Ganga.
- modify the first line of the ganga script from
#!/usr/bin/env python
to #!/usr/bin/env pythonw
.
--
AlvinTan - 09 Aug 2006
--
JakubMoscicki - 09 Aug 2006