New THOTH website available here

LEAR Frequently Asked Questions

IMPORTANT: Many informations in this document are outdated. This page is kept for historical reason. Please, refer to the wiki of the team for up-to-date informations.

- Where can I find good quality logos of INRIA and LEAR?
- Where can I get the papers from previous conferences?
- How do I create a technical report?
- What computers does LEAR have?
- What desktop machines can I use for computation?
- What disk space does LEAR have?
- Who can help me with system-related problems?
- Where can I find various things on the system?
- What system backups are done?
- How can I add things to the LEAR publications database?
- How can I access to the source/binary of the detectors - descriptors?
- What's different between OS installs?
- Why is my machine so slow?
- How do I limit the priority of my process?
- How to limit the memory that can be allocated by a process?
- Where can I get a faster python / numpy / scipy?
- Can I choose the number of threads of BLAS called through Numpy / Scipy ?
- My keyboard / screen / mouse / whiteboard is dirty or greasy
- Why can't I print my document?
- I am at home and still want to work: how can I connect to Inria?
- How can I parallelize my code?
- What are the coding practices at LEAR?
- How can I avoid relying on Google translate to find words in English or French?
- Finally my program is slow enough! I need more machines.

Where can I find good quality logos of INRIA and LEAR?

Here: /home/clear/lear/logos/

Where can I get the papers from previous conferences?

The proceedings of many conferences can be found in /home/clear/lear/proceedings/

How do I create a technical report?

Documentation can be found at the INRIA intranet here.

Updated: Feb 15

What computers does LEAR have?

See the machines text-file, or the corresponding openoffice spreadsheet. In principle any member of LEAR can run jobs on any of our workstations (via ssh), but if it's something large or CPU intensive, please ask the machine's 'owner' first. See below on how to initialize a public/private pair of keys for ssh

The team has a machine cluster composed of 35 hosts and 856 cores. You can submit jobs to it using the OAR scheduler on the cluster front, 'clear'. For usage reference, see man 'oarsub', read the OAR user documentation or kindly ask one of your teammates.

Everything under /home, /scratch and /scratch2 is accessible uniformly on all LEAR computers. Obviously, accesses to local files are faster.

What desktop machines can I use for computation?

Most desktop machines are attributed to a team member, therefore it is common courtesy to ask for the user's permission first.

The machines prospero and antonio are your best bet if you need to run a memory or CPU-intensive task without going through the OAR reservation system.

There are also machines hosting Titan GPUs, namely goneril (2 GPUs) and cepheus (1 GPU). Those machines are used for GPU-intensive tasks only, such as CUDA programs.

What disk space does LEAR have?

In short, around 270 TB (Feb 15), excluding home dirs.

For an overview of the current (updated every weekend) usage of disk space by you (and others) in GB see http://lear.inrialpes.fr/private/disk_usage.txt. You can see similar per-disk overviews at http://lear/private/disk_space/

You can ask Matthijs or Xavier to create a directory for you on another disk if you run out of space, but try to clean up first!

Who can help me with system-related problems?

First spend 10-15 minutes searching with Google (eg. 'Fedora 18 screen rotation'). Then ask people around you. Then ask the CMI's (currently Xavier Martin, Matthijs Douze and Jakob Verbeek). If they are not available you can submit a request to the MI's here (MI = sysadmins of the whole lab).

Where can I find various things on the system?

  • LEAR web pages: These are available on the web at lear.inrialpes.fr, and by NFS at /home/wwwlear. The main publicly available pages are in pub, and personal pages are in people. Local pages (accessible only to machines in inrialpes.fr and imag.fr) are in local, and private pages (accessible only to LEAR machines) are in private.
  • LEAR FTP sites: You can exchange files with external people via the FTP site. Files can be made available by copying them to /home/ftp/pub/lear/yourlogin that is visible at /pub/lear on ftp.inrialpes.fr. People can send files to here via /incoming/lear on ftp.inrialpes.fr (the directory cannot be listed, but the files will be there). This is accessible by NFS at /home/ftp/incoming/lear.
  • LEAR's home directory: There is an assortment of LEAR-related things on /home/clear/lear, including

    Contributions are welcome! In particular if you think a dataset is of interest to more people, have it placed under the lear directory!

  • Other software licensed to INRIA, Maple, S-plus, Mathematica and Insure++ are available on /softs/stow
  • The Intel C++ and Fortran compilers are available at /home/clear/lear/intel. For them to find the license server, do export INTEL_LICENSE_FILE=/home/clear/lear/intel/licenses/USE_SERVER.lic
  • What system backups are done?

    The home directories mounted on /home/lear/ are backup'ed regularly. Other data like scratch spaces or home directories on clear aren't backup'ed at all so be carefull.

    The backup system on the NAS is reliable but the main drawback is that we have very limited space on it (4GB per person). Thus please keep in your home only important files that cannot be easily regenerated. For instance you may store your code but not binaries built from it. Please also don't store in your home non work related files. Images and videos databases should be stored on scratch space (or clear, see below).

    You can see the state of your disk usage with du and quota. Some applications write a cache in your homedir, typically in the .cache subdirectory. This can be removed or moved to a scrach and linked from your homedir.

    The NAS backups are done four times a day, so at any moment the 4 most recent backups are available. There are also daily (for 7 days) and weekly (4 weeks) backups. Recovering is very simple : cd to /home/lear/my_subdir/.snapshot/backup_number ; this directory contains the files in as they were at the specified date. Then just copy the files you wish to restore. The .snapshot is not listed as a directory entry but you can access it.

    How can I add things to the LEAR publications database?

    You should add your publications in the HAL database at http://hal.inria.fr. If the interface language is or switches to French, you can go back to English with the button at the upper right of the screen. However, some of the field names will continue to be in French!

    The shared login for LEAR members is lear and the passowrd is lear/ljk.

    To modify existing entries

    Via the menu choose: Mon espace > Mes dépôts. Select the publication you want to edit, and choose one of the following. Use 'Ajouter un fichier' to add the fulltext of the paper; see also below. Use 'Modify the metadata' to change authors, title, conference name, to correct the publication type, e.g., change an arXiv paper into a conference paper (still keeping the link to arXiv), change a journal paper into a conference paper, etc.

    To submit a new paper

    Please take into account the following

    The database is a joint effort by the team, contributing to it is part of your job.

    Creating you personal publication page

    You can make your personal publication page by using the following example URL http://lear.inrialpes.fr/publications_lear.php?author=verbeek

    How can I access to the source/binary of the detectors - descriptors?

    Image descriptors

    Krystian's Harris/Hessian-affine implementation + dense descriptors, and Lowe's SIFT are integrated in compute_descriptors, see /home/clear/douze/bin/compute_descriptors.

    A newer package is Obsidian, which computes CS-LBP descriptors. To access this, you need to create an account on the Inria source repository, see here and ask a project admin for access.

    If you need only the GIST descriptor from obsidian, see the software page.

    Video descriptors

    Checkout either Ivan Laptev's spatio-temporal interest points or (even better) Heng Wang's dense trajectories and improved trajectories

    What's different between OS installs?

    All the machines are installed with Fedora Core 18 in 64 bit.

    You can run 32-bit code on 64-bit machines. You can produce 32-bit executables on 64-bit machines with gcc -m32. Matlab is available in both modes. If you want to run any version of matlab in 32-bit mode on a 64-bit machine, you have to specify matlab -glnx86

    If a program depends on exotic libraries (especially C++ stuff), it may not run on a machine with another distribution than the one it was compiled for. A workaround is to copy the necessary libraries to an accessible directory and point the LD_LIBRARY_PATH enivronment variable to it.

    You can add software packages packages to the system with sudo yum install toto (you can find relevant packages with yum search toto). If you need software that is not in a standard package, you'll have to compile and install it to a scratch, ask the CMI if you need to be assisted with this.

    Why is my machine so slow?

    Rebooting will disturb the people logged on your machine or using the discs, so it sould be used only when everything else fails and if it is clear that it will help.

    Slow machine

    If your machine is slow: use top to see what processes are using most CPU time and/or memory. If firefox-bin consistently uses more than 20% of CPU, a plugin probably went mad, so restat Firefox. If the bad processes do not belong to you, ask the owner. The mapping of names to person and office can be found here

    GUI issues

    If your mouse does not move, or the windows do not get focus, or you can't click, the window manager probably messed up something. Try to switch to a text console (ctrl+alt+F2), login, and restart the window manager by hand (kwin --restart --display :0 for KDE, metacity --restart --display :0 for Gnome, fvwm2 -r --display :0 for FVWM, etc.)

    If this does not work, or if you cannot switch to a text console, the X server may be hung. Try to kill it with Alt + PrtScn/SysReq + K.

    If this does not work, go to another machine and ssh back. Kill process /etc/X11/X. If ssh does not work, go to the network problems.

    Network issues

    If you cannot access a directory from another machine, it may be a network problem. Try to ping the other machine, then a third LEAR machine. If ping doesn't pass, verify the network cable, or the other machine.

    If accessing your homedir or id mylogin is slow the LDAP server is failing. Ask the CMI.

    How do I limit the priority of my process?

    This is useful (and recommended) when you run a process on another machine.

    Each process has a priority (PR field in top, 40 ≥ PR ≥ 0) used by the kernel's scheduler to decide when it will be run. If PR is higher, the process will get less CPU time. A user can set the priority of a process relative to that of its parent process. The difference between the two is the 'nice value' (NI in top):

    PRpid=PRppid+NIpid

    A normal user can set only positive nice values, on his/her own processes. To launch a command tryout_all_params.sh with a nice value of 13, do:
    nice -n 13 tryout_all_params.sh

    To change the nice value of the command when it is already running, find its pid and enter
    renice +13 -p <the pid>

    How to limit the memory that can be allocated by a process?

    There are two types limitation:

    1. the maximum amount of physical memory a process may have allocated to it at a given time (from RAM)
    2. the maximum amount of total memory a process may have allocated to it at a given time (from RAM+SWAP)

    So if you afraid that your allocation will exceed the free physical memory and linux will be terribly slow because of swapping or it might crash the whole kernel (eventually happens...), set a limit to BOTH (1) and (2). If you just afraid of crash it is probably enough to set (2). Limits described here are local to a shell and inherited by sub-shells. To set these limits use limit and ulimit built in commands of tcsh and bash accordingly.

    Notes:

    The following example sets the physical memory limit to 200MB and the total mem limit to 300MB
    In tcsh:

    limit memoryuse 200m limit vmemoryuse 300m

    In bash:

    ulimit -Sm 204800 -Sv 307200

    List the current limitations:
    In tcsh:

    limit

    In bash:

    ulimit -a

    The following example lists the amount of memory currently used by process 3940:

    ps -o pid,vsize 3940

    You can also use top to check the amount of memory used by processes. (ON← to order it by mem usage.)

    Where can I get a faster python / numpy / scipy?

    The numpy and scipy version installed on the system are not the fastest possible. The easiest way to get a replacement is through the Enthought Python Distribution (EPD) which is free for academic use (you just have to give your academic e-mail address). It contains many useful librairies including Numpy, Scipy, IPython (for an improved python shell), Matplotlib (for plotting) and scikit-learn (machine learning library). The other bonus is that it ships with Intel's MKL (more efficient alternative to ATLAS) and is linked with it. This allows for efficient multithreaded linear algebra, equivalent to Matlab in terms of performance and functionality (Matlab uses MKL under the hood), with a real programming language!

    If you want the bleeding edge versions, or if you want to contribute to those great open source projects, you can retrieve and compile the source code for Python, Numpy and Scipy.

    Can I choose the number of threads of BLAS called through Numpy / Scipy ?

    For BLAS operations Numpy is relying on the ATLAS library, which comes in two different versions: one is single-threaded (libsatlas.so), one is multi-threaded (libtatlas.so, the default one). Beware that the presence of many softlinks in /usr/lib64/atlas/ makes it almost impossible to call the single-threaded version. Actually this is on purpose in order to 'fool' Python, so that it always uses the multi-threaded version. To change this behavior, just prefix your python call with:

    LD_PRELOAD="/usr/lib64/atlas/libsatlas.so.3.10_backup" python myscript.py ...

    If you want to dynamically change the number of threads, then only MKL can help you. Refer to the previous question/answer in that case.

    My keyboard / screen / mouse / whiteboard is dirty or greasy

    Get a spray and piece of cloth in Nathalie's office.

    Why can't I print my document?

    If you print from a graphical program (eg. acroread, firefox,...) try output to a postscript (ps) file and verify you can see the file with gv (ghostview). If not, try something else to generate the ps (e.g. pdftops instead of acroread, opera instead of mozilla, ooffice instead of the Word print-to-file).

    To check if the print server works, click on http://print-serv.inrialpes.fr:631/ (it should display a web page). If it does not, the print server is down: ask your CMI.

    If the print server is down, you can connect to the printer directly via http (http://ch110b, 'Print' tab) or ftp on older printers (you can put the .ps file). This method is only for emergencies because it short-circuits the print queue.

    I am at home and still want to work: how can I connect to Inria?

    You can only connect to Inria with ssh. There are two machines accessible from outside:

    In both cases, you must create a public/private key pair. There is an explanation here, but if you don't understand it (like me), here is a digest:
    1. on any machine, do ssh-keygen -t rsa and give a password XYZ (it is easier to leave it empty).
    2. copy the generated id_rsa and id_rsa.pub to the directory ~/.ssh/ on the machine you want to connect from, and set proper permissions (chmod 600 ~/.ssh/id_rsa; chmod 644 ~/.ssh/id_rsa.pub)
    3. copy the generated id_rsa.pub to ~/.ssh/authorized_keys on your inria account (or append to it if it exists)
    Now, to connect to bastion.inrialpes.fr, register on this page and connect with ssh with password XYZ. More information about remote login via bastion can be found here. The key expires after some time, so you may have to upload it again.

    Under Unix (Linux or Mac OS X), ssh should be installed. On Windows, use Putty. To access your INRIA machine from pascal or bastion, use rlogin or ssh as usual.

    GNU screen is a very useful program to run text-based applications remotely. It can handle multiple shells, and persists when you disconnect. Tutorials are available on the web.

    Viewing graphical programs remotely requires to make an ssh tunnel: apart from the normal connection, ssh forwards the graphical data from a port on the client machine to a port reachable from the server machine. There are two graphical protocols available.

    The advantage of VNC over X is that closing the connection does not close the programs that are running (since the VNC server is still running). The advantage of X is that it is faster because it transmits high level drawing instructions (like 'draw a line' or 'print this string'), whereas VNC transmits bitmaps of the part of the display that changes.

    How can I parallelize my code?

    See Matthijs's notes.

    What are the coding practices at LEAR?

    This document specifies how much you should indent your code and whether method names should start with an uppercase letter.

    How can I avoid relying on Google translate to find words in English or French?

    Use the Robert & Collins French-English dictionary

    Finally my program is slow enough! I need more machines.

    Congratulations! There is a cluster for you. Please read the cluster user guide.