|
|
(126 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| Cortex is a computation rack for VisLab humanoid robots. | | Cortex is a server used by VisLab for running simulations (not the ones with the iCub robot). |
|
| |
|
| = The Cluster =
| | ''Old information can be consulted at [[Cortex/Archive]].'' |
|
| |
|
| It contains 7 machines:
| | = Specifications = |
| * 1 server that manages startup, shutdown and the file system of the clients.
| |
| * 6 clients that run the user processes.
| |
|
| |
|
| All clients mount the same file system. Therefore, performing changes in the file system of one of the clients will reflect to all others.
| | As of 2017, there is one machine (cortex1) with these specs: |
| | | * 8 x [http://ark.intel.com/products/65523/Intel-Core-i7-3770K-Processor-(8M-Cache-up-to-3_90-GHz) i7-3770K] @ 3.50GHz processor |
| = The Network =
| | * 16GB of memory (<code>sudo dmidecode --type 17</code> to see RAM speed and type) |
| | | * 112GB SSD drive + 1TB HDD drive |
| Cortex machines are at the vislab robotics network domain:
| | * NVidia [http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-670 GeForce GTX 670] graphics card (CUDA) |
| * Domain: visnet
| | * internal ISR IP address: 10.10.1.1 |
| * Subnet: 10.10.1.*
| |
| | |
| == Cortex nodes ==
| |
| | |
| Cortex server and clients have the following ip's and domain names:
| |
| * Server: 10.10.1.240, server.visnet
| |
| * Client 1: 10.10.1.1, cortex1.visnet
| |
| * Client 2: 10.10.1.2, cortex2.visnet
| |
| * Client 3: 10.10.1.3, cortex3.visnet
| |
| * Client 4: 10.10.1.4, cortex4.visnet | |
| * Client 5: 10.10.1.5, cortex5.visnet
| |
| * Client 6: 10.10.1.6, cortex6.visnet
| |
| | |
| == Other nodes ==
| |
| | |
| Other assigned ip's and names are:
| |
| * Gateway: 10.10.1.254, gtisr.visnet
| |
| * Cortex Switch: 10.10.1.250, swcompurack.visnet
| |
| * Vislab Switch: 10.10.1.251, swvislab.visnet
| |
| * iCubBrain1: 10.10.1.41, icubbrain1.visnet
| |
| * iCubBrain2: 10.10.1.42, icubbrain2.visnet
| |
| * DHCP Range: 10.10.1.100-199
| |
| * Chico pc104: 10.10.1.50
| |
| * Chico clients: 10.10.51-59
| |
| * Chica Net: 10.10.1.60-69
| |
| * Balta Net: 10.10.1.70-79
| |
| | |
| == DNS Configuration ==
| |
| | |
| Name resolution in the visnet network is managed by a bind system in server.visnet. To add/change the table of names and ip's do 'cd /etc/bind', edit and change the file ' /visnet.src' (need super user permission)and then run 'make'. After a while (the tables must be copied to ISR DNS server, may take a few minutes) you can ping the new machines by name.
| |
| | |
| At the time of this writing, the configuration file is as follows:
| |
| | |
| ## 10:45, 2 September 2009 (UTC)10:45, 2 September 2009 (UTC)10:45, 2 September 2009 (UTC)10:45, 2 September 2009 (UTC)[[User:Alex|Alex]]
| |
| ## Tabela de DNS -- VisNet
| |
| ## 10:45, 2 September 2009 (UTC)10:45, 2 September 2009 (UTC)10:45, 2 September 2009 (UTC)10:45, 2 September 2009 (UTC)[[User:Alex|Alex]]
| |
| ##
| |
| domain("visnet")
| |
| prefix("10.10.1")
| |
| soa("server.isrnet", "alex", "isr.ist.utl.pt")
| |
| ns("server.visnet")
| |
| ##
| |
| ## Sintaxe:
| |
| ## NOME ------- IP ---- COMENTARIO (entre aspas) ----------------------
| |
| ##
| |
| a(cortex1, 1, "Compurack client 1")
| |
| a(cortex2, 2, "Compurack client 2")
| |
| a(cortex3, 3, "Compurack client 3")
| |
| a(cortex4, 4, "Compurack client 4")
| |
| a(cortex5, 5, "Compurack client 5")
| |
| a(cortex6, 6, "Compurack client 6")
| |
| a(cortex7, 7, "Compurack client 7")
| |
| a(icubbrain1, 41, "Supermicro 1")
| |
| a(icubbrain2, 42, "Supermicro 2")
| |
| a(pc104, 50, "Chico pc104")
| |
| a(chico1, 51, "iCub chico")
| |
| a(chico2, 52, "iCub chico")
| |
| a(chico3, 53, "iCub chico")
| |
| a(chico4, 54, "iCub chico")
| |
| a(chico5, 55, "iCub chico")
| |
| a(chico6, 56, "iCub chico")
| |
| a(chico7, 57, "iCub chico")
| |
| a(chico8, 58, "iCub chico")
| |
| a(chico9, 59, "iCub chico")
| |
| a(chica, 60, "iCub chica")
| |
| a(chica1, 61, "iCub chica")
| |
| a(chica2, 62, "iCub chica")
| |
| a(chica3, 63, "iCub chica")
| |
| a(chica4, 64, "iCub chica")
| |
| a(chica5, 65, "iCub chica")
| |
| a(chica6, 66, "iCub chica")
| |
| a(chica7, 67, "iCub chica")
| |
| a(chica8, 68, "iCub chica")
| |
| a(chica9, 69, "iCub chica")
| |
| a(balta, 70, "Baltazar")
| |
| a(balta1, 71, "Baltazar")
| |
| a(balta2, 72, "Baltazar")
| |
| a(balta3, 73, "Baltazar")
| |
| a(balta4, 74, "Baltazar")
| |
| a(balta5, 75, "Baltazar")
| |
| a(balta6, 76, "Baltazar")
| |
| a(balta7, 77, "Baltazar")
| |
| a(balta8, 78, "Baltazar")
| |
| a(balta9, 79, "Baltazar")
| |
| range(dhcp-, 100, 199)
| |
| a(server, 240, "Compurack server")
| |
| a(swcompurack, 250, "Compurack switch")
| |
| a(swvislab, 251, "Vislab switch")
| |
| a(gtisr, 254, "gateway")
| |
| ## -- EOF --
| |
| ### Local Variables: ###
| |
| ### gendns-keywords: ("^domain" "^prefix" "^soa" "^ns" "^mx" "^a" "^range" "^rangex" "^cname" ("\t" . highlight)) ###
| |
| ### font-lock-defaults: (gendns-keywords nil t ((?# . "<") (?\n . ">")) nil) ###
| |
| ### mode: font-lock ###
| |
| ### End: ###
| |
| | |
| | |
| == Connectivity ==
| |
| Cortex machines are connected to Cortex Switch, that links to Vislab switch with a fiber optic connection of 4Gb/s.
| |
| | |
| == Traffic ==
| |
| Network traffic can be checked at:
| |
| * http://inode1.isrnet/cacti (user guest, pass guest)
| |
| | |
| = The Cortex Server =
| |
| | |
| The server has:
| |
| * Boot folder for the clients at /tftpboot/pxelinux.cfg. Contains the files:
| |
| ** default - default boot file | |
| ** <mac_address> - specific for a machine with the given mac address.
| |
| * startup scripts for each machine at /nfsroot/app
| |
| | |
| = The Cortex Clients =
| |
| | |
| == Configuration ==
| |
| | |
| The clients have:
| |
| * A superuser account (compurack) to administer system wide settings (configurations, libs, etc)
| |
| * Normal user accounts. The logon script runs by default the content of file $HOME/.bash_env, where users can set their environment variables, e.g. export ICUB_DIR=$HOME/iCub.
| |
| * A yarp account to update and install the yarp library. YARP_DIR is set by default to /home/yarp/yarp2 to all users (in /etc/bash.bashrc).
| |
| * An "icub" account with sudo privileges (done with <code>sudo adduser icub admin</code> on 2009-06-30)
| |
| | |
| = Global Libraries and Repositories =
| |
| | |
| == YARP ==
| |
| Yarp was set using the following commands (after logging in as yarp):
| |
| cvs -d:pserver:anonymous@yarp0.cvs.sourceforge.net:/cvsroot/yarp0 login
| |
| cvs -z3 -d:pserver:anonymous@yarp0.cvs.sourceforge.net:/cvsroot/yarp0 co -P yarp2
| |
| cd yarp2
| |
| cmake . (or ccmake .)
| |
| make
| |
| make test
| |
| | |
| == OTHER ==
| |
| | |
| Other system wide libraries/apps are installed by the superuser.
| |
| | |
| Libraries not having a clean 'make install' currently present in /opt/:
| |
| * ARToolKit | |
| * Ipopt-3.5.5-linux-x86_32-gcc4.2.4 | |
| | |
| Libraries that are cleanly installed:
| |
| Curses
| |
| apt-get install libncurses5-dev
| |
| | |
| ACE
| |
| apt-get install libace-dev
| |
| | |
| CMake
| |
| apt-get install cmake
| |
| | |
| GSL
| |
| apt-get install libgsl0-dev
| |
| | |
| GTK/GTKMM/Glade
| |
| apt-get install libgtk2.0-dev
| |
| apt-get install libgtkmm-2.4-dev
| |
| apt-get install libglademm-2.4-dev
| |
| | |
| OpenCV
| |
| THE REPOSITORY IS NOW IN SVN FORM, WE NEED TO UPDATE THIS.
| |
| cvs -z3 -d:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:/cvsroot/opencvlibrary co -P opencv
| |
| cd opencv
| |
| ./configure
| |
| make
| |
| make install
| |
| add /usr/local/lib to /etc/ld.so.conf
| |
| | |
| GLEW (OpenGL extension finder)
| |
| apt-get install glew-utils
| |
| apt-get install libglew1.5-dev
| |
| | |
| GLUT (Glu Utility toolkit)
| |
| apt-get install libglut-dev
| |
| | |
| = User Repositories =
| |
| | |
| Each user should manage its own repositories, e.g. the iCub repository:
| |
| cvs -d vislab@cvs.robotcub.org:/cvsroot/robotcub co iCub
| |
| then you should add <iCub>/bin to your PATH by editing your ~/.bashrc like this:
| |
| PATH=$PATH:~/iCub/bin/
| |
| ICUB_DIR=~/iCub/
| |
| export ICUB_DIR
| |
| ICUB_ROOT=$ICUB_DIR
| |
| export ICUB_ROOT
| |
| | |
| You should also edit ~/.bash_env adding these lines:
| |
| export ICUB_DIR=$HOME/iCub
| |
| 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)
| |
| | |
| = Other configurations =
| |
| | |
| == 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.<br>
| |
| 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.
| |
| | |
| = Helper commands =
| |
| | |
| * Check the kernel : uname -m
| |
| | |
| * Check the file versions : file
| |
| | |
| * Set bash shell in /etc/passwd
| |
| | |
| * Check disk space: du –h –s /home
| |
| | |
| * Check per user processes: ps -U <user>
| |
|
| |
|
| [[Category:Vislab]] | | [[Category:Vislab]] |