Categories

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

FAQs

Documentation

Get the documentation at http://www.sagecommons.org/sage-documentation/

FAQ

Compiling SAGE

Running SAGE

Running SAGE Applications

Other Questions

Answers:

Where do I download the prerequisites for installing SAGE?

Compilation error similar to: “undefined reference to ‘QUANTAnet_tcpClient_c ….”
Quanta has to be installed on your system and if it is and you are still getting this error, the compiler probably cannot find it. If you installed it in the default directory (/usr/local) the compiler should find it automatically. However, if you installed it in a non-default directory you must edit the sage/src/Makefile. Change the QUANTA_DIR in that file to point to the folder where Quanta is installed.

Compilation error similar to: “undefined reference to ‘glEnable'”
OpenGL is required for SAGE to compile and run. This error probably means that the compiler cannot find OpenGL if it is installed on your system.

Compiler complaining about “sdl-config”.
Make sure libSDL is installed. Make sure that the version installed is (or newer than) 1.2.8.

I have all the required libraries installed but I still get the above error(s).
Makefiles make use of command “uname -p” in order to identify the system you are trying to install SAGE on (powerpc, x86, x86_64 …). This is necessary in order to look for the libraries in correct places. If you have all the prerequisites installed and you are still getting some of the above errors check that your system supports “uname -p” command. If it doesn’t you could try changing it to “uname -m” in the Makefiles. If the machine type is not recognized the Makefile will assume that the underlying architecture is a 32-bit Linux system.

I see the following during compilation: “Try ‘uname –help’ for more information.”
Your system doesn’t support “uname -p” command. Look at the question above for more information.

Compilation error similar to: “error: GL/glut.h: No such file or directory…”
GLUT is actually not needed for SAGE to compile but it is needed for some test applications (render and atlantis). Make sure GLUT is installed on your system.

Compilation error: “cannot find -lfrenchwindows”
Make sure you run “make” in the sage/ directory and NOT sage/src since that will compile frenchwindows library before compiling the actual SAGE source.

Compiler complains about “readline”
Try adding “-lcurses” to READLINE_LIB in the sage/src/Makefile. If that doesn’t work, try adding “-ncurses” instead of “-lcurses”.

“fsManager : cannot find the environment variable SAGE_DIRECTORY”
You must have the environment variable SAGE_DIRECTORY set while running SAGE. It has to point to the directory where SAGE is installed. Apart from this your PATH env variable has to include “$SAGE_DIRECTORY/bin” and your LD_LIBRARY_PATH variable has to include “$SAGE_DIRECTORY/lib”. You also have to make sure that you have all of these env variables set on ALL the nodes of your cluster as well.

“QUANTAnet_tcpClient_c::Connect: Can’t connect to server. fsManager : fail to connect to the connection manager”
There is a server that handles connections between users and SAGEs called connection manager. Whenever you start SAGE it will try to let the connection manager know that it is available for the users to connect to it. If you see this error message that means that your SAGE cannot connect to the connection manager whose location was specified in fsManager.conf. To specify a different address of the connection manager change the “conManager” line in that file. By default SAGE will try to connect to a connection manager always running at evl (131.193.48.235). However, SAGE will continue run with no problems even if it isn’t connected to a connection manager. For information on how to run your own connection manager please look at the question later in this FAQ.

“QUANTAnet_tcpClient_c::Connect: Can’t connect to server. fail to send the message!”
This error is most likely caused by a wrong configuration file and probably the fsManager.conf. Make sure that the first line is setup properly: “sage_name” “local_ip” “public_ip” OR “sage_name” “public_ip”. For more details look into Quick Start or the Documentation on the SAGE web page.

“QUANTAnet_tcpServer_c::init: Can’t bind local address”
This could mean two things: fsManager is already running (or not properly shutdown) or an application is still left running from the previous execution of SAGE. To remedy the first one run KILL_ALL from the sage/bin directory. This should kill SAGE and some applications from the master and all the nodes. To remedy the second problem and KILL_ALL script did not close all of the applications you will have to do it manually. The easiest way to see which applications are still running is to check all the ssh connections that are still open: “ps aux | grep ssh”. One or more of them will correspond to a SAGE application (they will have a “gStreamRcv” string in them). Kill that application and recheck all the ssh connections. All the ones pertaining to SAGE should be gone.

“gStreamRcv: error while loading shared libraries: libfrenchwindows.so: cannot open shared object file: No such file or directory”
Make sure that libfrenchwindows.so exists in the sage/lib directory. If not, run “make install” in the top sage directory. If it exists, make sure you have your environment variables set up properly (look at this question). Also, make sure that this file also exists on all the nodes and the environment variables are setup properly on all the nodes.

“tvLoadDl::tvLoadDl(): tvTcpModule.so: cannot open shared object file: No such file or directory : While loading up : tvTcpModule.so”
Look at the question above.

While running fsManager: “Segmentation fault”
This could happen for a number of reasons and it could be caused by a number of things: fsManager, gStreamRcv, sage applications… One of the reasons could be that something SAGE related is still running from the previous session (check this question). If the message is preceeded with “failed to open sail config file” look at this question. If the segmentation fault seems to be comming from a SAGE application, check that you have write permissions to the directory where the application binary resides. In the end, it could be just a bug. In that case you will have to kill SAGE and all the applications and restart.

I see window borders on my display nodes. How do I run SAGE in fullscreen mode?
In the sage.conf file towards the bottom there is a line that should look like this: “fullScreen 0”. To get fullscreen mode change that 0 to 1.

When starting fsManager the display nodes seem to turn black really slowly or never even turn black.
First check if something really CPU intensive is running on the master or the nodes. If everything looks good, it is most likely caused by some remnants from the previous SAGE session (probably some application still running or not killed completely). Look at this question for a more complete answer.

When starting fsManager: “fail to open sail config file”
This will occur when fsManager or a SAGE application cannot find a configuration file. The most common cause of that is an improperly set up PATH variable (it should include $SAGE_DIRECTORY/bin). A less common cause are the directory and file permissions where the application and SAGE are running. Also make sure that the nodes have all that set up properly.

While running fsConsole: “>>> Opening log file… Segmentation fault”
This is caused by file/directory permissions. Check that you have a permission to write to the directory where the application resides and where the fsConsole resides.

“render: No such file or directory” or similar
Make sure that “render” binary exists in sage/bin directory and that the PATH environment variable contains $SAGE_DIRECTORY/bin.

The SAGE window of my application is black or it is not being updated. I only see the borders or an old frame inside the border.
This happens when an application is not sending its pixels to SAGE for whatever reason. Some applications, including OpenGL applications that use GLUT, will not render their pixels if their window is not visible. Therefore, you must run those applications on the master otherwise the application will be hidden below the SAGE window and will not be able to render its own pixels.

When starting applications: “fail to open sail config file”
Look at this question.

One application seems to run OK but when I try to run more at the same time I get repeated errors similar to this one: “tvSyncClient :: checkSync(): Error receiving sync from master: Success “.
This could easily happen if your machine does not have a lot of free memory. This will make SAGE run out of memory quickly especially if multiple applications are running at the same time. To remedy that, you can tell SAGE to allocate less memory for each application by changing “receiverBufNum” in sage.conf to a lower number (the default is 20 so try 10). This parameter tells SAGE how many frames to keep in the circular buffer for each application.

How do I use SAGE without having to type my password every time SAGE or a SAGE application is started?
Since SAGE uses ssh to connect to all the nodes of a cluster and execute applications, the ssh itself should ask you for a password each time a node is accessed by SAGE (app execution, SAGE startup…). This is generally not good for SAGE and it should be avoided if possible. However, it is very simple to set up ssh keys so that you do not have to type in your password every single time. If your cluster is set up using nfs, the home directories will already be the same on all the nodes so you shouldn’t need to do anything. Otherwise, you will need to copy the public ssh key from the master to all the nodes. Basically, copy the key from ~/.ssh/id_dsa.pub (or id_rsa.pub depending on the encryption you are using) to all the nodes’ ~/.ssh/authorized_keys. That way, when you ssh from the master to a node, the master’s key will be checked against the keys in the node’s authorized_keys file and if found it will log you in without asking for a password.

What are the prerequisites for running SAGE UI?
You must have the following things installed on any platform (Windows, Mac, Linux):

  • Python (2.3 or later) – Windows msi installer or source for other platforms (most Linux and MacOS distributions come with a sufficient python version already installed)
  • wxPython (2.6.1 or later) – Get prebuilt binaries or compile from source.
  • numarray (1.1 or later) – Get it from sourceforge.

How do I run/set up my own connection manager/users server?
If you do not want to use the default EVL connection manager, you can start your own. Look in sage/ui/usersServer/README for details on how to start it. After that you will need to change the fsManager.conf (conManager line) to tell SAGE to connect to your own connection manager instead of the deafult one. Also, when starting SAGE you have to specify an IP address of the connection manager you want to connect to: python sageui.py 123.123.123.123

How do I run/install SAGE UI?
SAGE UI is included with SAGE and it’s present in the sage/ui directory. Since the UI is written in python which is interpreted, there is no need to compile it. It will run as is on any Windows, Mac or Linux machine. To run it type “python sageui.py [conManager IP]” from the sage/ui directory. The optional parameter in square brackets is the IP address of the machine where the connection manager is running. If you have your own connection manager setup you will need to specify its IP address at the end. For more information look in sage/ui/README.

While trying to start SAGE UI I get the following error: “ImportError: No module named …”
This means that python cannot find the required packages for running the SAGE UI. Make sure that they are installed and that they are present in the site-packages folder of your python installation. To see if those packages can be found by python start the interpreter by typing “python”. In the interpreter type: “import sys; sys.path”. This will list all the paths that are available to python and the paths where wxPython and numarray are installed should be there. If they are not, you can either move the wxPython and numarray folders to the site-packages folder (which is always accessible by python) or add those paths to the PYTHONPATH environment variable. Also, for wxPython make sure that wx.pth file in site-packages folder contains the folder name of your wxPython installation (such as “wx-2.6-gtk2-ansi”). Another thing to watch out for is if you have multiple versions of python and some of them have these packages installed and some of them don’t.

How do I install wxPython on Linux/Windows/Mac OS (before Mac OS X v10.4)?
If you want to compile wxPython from source, please follow these instructions. If you are installing from a binary, it’s as simple as double-click on the installer or doing “rpm -i” on Linux. If you have any issues consult the download page of wxPython, a section specific for your platform.

How do I install wxPython on Mac OS X 10.4?
Quick-and-dirty:

  • Download this package and wxPython 2.6.
  • Install both.
  • Rename the file/Library/Python/2.3/site-packages/Extras.pth to Extras.pth.bak.

Longer explanation:
Why is Mac OS X 10.4 different? Because it already comes with python 2.3.5 and wxPython 2.5.3.1. While that python version is sufficient, SAGE UI requires a newer version of wxPython. However, if you look on the wxPython download page for MacOS X you will see that Tiger (10.4) versions are not an option for download. Instead, versions of wxPython compiled for Mac OS X 10.3 are used. The problem is that there are some path differences in python that ships with 10.4 and python that shipped with 10.3 (for which the wxPython that you need to download was built). So, in order to use those 10.3 versions of wxPython on 10.4, you need to install an extra package that you can download here. After installing that package you can download and install wxPython for MacOS X 10.3 and Python 2.3. After installing wxPython you should have a directory in /Library/Python/2.3 called something like”wx-2.6-mac-ansi”. Now you can try running the python interpreter and typing”import wx; wx.VERSION”. It should print something like “(2, 6, 2, …)” which means that when you run python, it is now using the new version of wxPython.If it still shows “(2, 5, 3, …)” or some other older version, rename the file/Library/Python/2.3/site-packages/Extras.pth to Extras.pth.bak. Extras.pth points to another directory where the older (default) version of wxPython is installed and python was loading that one instead of the new one you just installed.

How do I install numarray?
Download numarray from here. For windows just run the binary. For Linux and MacOS uncompress it, go to that folder where you uncompressed it and type “sudo python setup.py install”. You must have root permissions to install it.