Cortex

From ISRWiki
Revision as of 10:16, 3 September 2012 by Giovanni Saponaro (talk | contribs) (→‎Specifications: nvidia graphics card)
Jump to navigation Jump to search

Cortex is a cluster of 6 servers used by VisLab for development purposes (the other cluster, iCubBrain, is used for demos).

Old information can be consulted at Cortex/Archive.

Specifications

work in progress (summer 2012 upgrades)

Each machine has:

  • 8 x i7-3770K @ 3.50GHz processor
  • 16GB of memory
  • 112GB SSD drive
  • NVidia GK104 CUDA graphics card

Old setup

the following information will become obsolete and shall be archived

From an end-user perspective:

  • each machine hosts an Intel Pentium Dual-Core processor (2 x E2180 @ 2.00GHz);
  • memory: 2GB for each machine (sudo dmidecode --type 17 to see RAM speed and type).

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.

Setup

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.

Operating system installation

In general, follow the guidelines at VisLab machines configuration. Below are some special notes.

Additional software

On this cluster, each user should manage his own yarp2 and iCub repositories. As a result, do not use system-wide installation of those (sudo make install): instead, simply use make and set your environment variables.

(We could use system-wide yarp2 again after we verify that a user can easily override global settings.)

YARP and iCub

The yarp2 and iCub repositories are installed for user 'icub', similarly to iCubBrain server configuration.

Other libraries, manually installed

Please list here the system-wide libraries and applications that were installed by the superuser, especially the ones that do not have a clean 'make install' procedure but were manually installed into /opt:

  • ARToolKit
  • Ipopt-3.5.5-linux-x86_32-gcc4.2.4

CMake 2.6 does not come with the version of Ubuntu currently installed, but it is needed by the latest version of yarp, so we installed it via this archive.

  • cmake 2.6

Customization

Network tuning

  sysctl -w net.core.rmem_max=8388608
  sysctl -w net.core.wmem_max=8388608
  sysctl -w net.core.rmem_default=65536
  sysctl -w net.core.wmem_default=65536
  sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'
  sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'
  sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'
  sysctl -w net.ipv4.route.flush=1

Prompt ($PS1)

The prompt is set to user@cortex?:pwd$ in /etc/bash.bashrc. With those settings, if you log in to Cortex1, the prompt will be user@cortex1:~$. We chose to do so because sometimes it's convenient to have the number of the Cortex machine you're working on embedded in the prompt. By default, though, this configuration is overridden in the users' ~/.bashrc file, and the prompt is set to user@source regardless of the Cortex machine you log in to.
If you want to inhibit this behaviour in ~/.bashrc and thus have a prompt like user@cortex?:pwd, just comment these lines in your ~/.bashrc:

  # set a fancy prompt (non-color, unless we know we "want" color)
  case "$TERM" in
  xterm-color)
      PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
      ;;
  *)
      PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
      ;;
  esac

However, for users created after 2009-05-07, the prompt is already set to user@cortex?:pwd$ by default.