Cortex/Archive

From ISRWiki
Revision as of 10:31, 12 June 2013 by Giovanni Saponaro (talk | contribs) (→‎Specifications: more archived info)
Jump to navigation Jump to search

Note: these methods are obsolete and kept here for historic reference only. Most probably, you may ignore this page and go back to Cortex.

Specifications

During 2009-2012, the setup was the following.

From an end-user perspective:

  • each machine hosts an Intel Pentium Dual-Core processor (2 x E2180 @ 2.00GHz);
  • memory: 2GB for each machine.

More specifically:

  • each of the client machines has the following specs: Intel Desktop DG965SS motherboard (info1, info2); Intel DualCore E2180 CPU @ 2 GHz with cache 1 MB; 2 x RAM 1GB DDR2 677 MHz; rackmount 19" 2U case from Chieftec (UNC-210S-B), with ATX 300W power supply;
  • the server machine has similar specs plus Intel PRO 1000GTLP/ENet gigabit ethernet card; 2 x WD2500JS 250GB SATAII 8MB disks for software RAID-1.

The Cortex computation rack actually contains 7 machines:

  • 1 server that manages startup, shutdown and the file system of the clients;
  • 6 clients (named cortex1...cortex6) that run user processes.

All clients numbered 1 to 5 mount the same file system. Therefore, performing changes in the file system of cortex[1-5] will reflect to all other four clients. Beware, though, that because of the way the file systems are mounted, there is some caching going on. This improves disk access performance, but strange phenomena might happen, i.e., after a file is modified and saved on one client, other clients can continue to see the old version of it for some time (probably less than one minute). The client cortex6 is separate for now, because it runs a 64 bit Linux.

For further details, see the Cortex setup article.

Additional setup

Other libraries, installed with Ubuntu packages

These packages were installed with sudo apt-get install:

 libgtk2.0-dev libgtkmm-2.4-dev libglademm-2.4-dev glew-utils libglew1.5-dev libglut-dev git-core

OpenCV:

 libcv-dev libhighgui-dev libcvaux-dev

System-wide libraries and repositories

YARP

Presently (November 2010), the yarp2 SVN repository is installed under user yarp (with sudo make install), last updated on 13-July-2010. <-- change this policy?

iCub

Presently (November 2010), the iCub SVN repository is installed under user icub (with sudo make install), last updated on 13-July-2010. <-- change this policy?

There was a conflict with iKin, which could not find libipopt.so.0, but it is now fixed thanks to setting the environment variable

 LD_LIBRARY_PATH=/opt/Ipopt-3.5.5-linux-x86_32-gcc4.2.4/lib/

into /home/icub/.bash_env.

One module has been disabled in the CMakeList.txt file, because it was not compiling properly: crawling.

User repositories

you should add <iCub>/bin to your PATH by editing your ~/.bashrc like this:

 PATH=$PATH:~/iCub/bin/
 ICUB_DIR=~/iCub/ <-- needs to change
 export ICUB_DIR
 ICUB_ROOT=$ICUB_DIR
 export ICUB_ROOT

You should also edit ~/.bash_env adding these lines:

 export ICUB_DIR=$HOME/iCub <-- needs to change
 export ICUB_ROOT=$ICUB_DIR

this is needed when you connect non-interactively via ssh to a Cortex computer, for instance when execute a "yarp run ..." on a Cortex, from Chico2.

Be aware that Ubuntu 7.10 (the version currently installed on the cluster) has a conflict with iKin, specifically with iCub/conf/FindIPOPT.cmake (used by iKin): for now, in order to compile iKin, change the following line of FindIPOPT.cmake from

  SET(IPOPT_LIB   ${IPOPT_LIB} gfortranbegin gfortran)

to

  SET(IPOPT_LIB   ${IPOPT_LIB} gfortran)

Helper commands

These generic Linux commands should be written somewhere else, as they are not Cortex-specific

  • Check the kernel: uname -m
  • Check the file versions: file
  • Set bash shell in /etc/passwd
  • Check disk space: du –sh /home
  • Check per-user processes: ps -U <user>