Visions:NoobiesTutorial: Difference between revisions
(125 intermediate revisions by 16 users not shown) | |||
Line 1: | Line 1: | ||
=Welcome to the Visions= |
|||
=Abbreviated Names= |
|||
AB: Andreas Baumbach |
|||
AFK: Ákos Kungl |
|||
AG: Andreas Grübl |
|||
AL: Aron Leibfried |
|||
BC: Benjamin Cramer |
|||
BK: Björn Kindler |
|||
BV: Bernhard Vogginger |
|||
CM: Christian Mauch |
|||
CP: Christian Pehle |
|||
DD: Dominik Dold |
|||
DH: Dan Husmann |
|||
ECM: Eric Müller |
|||
FK: Felicitas Kleveta |
|||
FP: Felix Passenberg |
|||
HS: Hartmut Schmidt |
|||
JG: Julian Goeltz |
|||
JI: Joscha Ilmberger |
|||
JM: José Montes |
|||
JK: Jakob Kaiser |
|||
JS: Johannes Schemmel |
|||
JW: Johannes Weis |
|||
KS: Korbinian Schreiber |
|||
MAP: Mihai Petrovici |
|||
MD: Markus Dorn |
|||
MG: Maurice Güttler |
|||
OMA: Oscar Martín-Almendral |
|||
OJB: Oliver Breitwieser |
|||
PSP: Philipp Spilger |
|||
SB: Sebastian Billaudelle |
|||
StB: Stefan Becker |
|||
SK: Simeon Kanya |
|||
SS: Sebastian Schmitt |
|||
TT: Tobias Thommes |
|||
VK: Vitali Karasenko |
|||
YS: Yannik Stradmann |
|||
QS: Quirinus Schwarzenboeck |
|||
This Wiki should help you getting started with the workflow of our group. |
|||
=Meetings, sorted by time= |
|||
It is somewhat sorted by relevance. |
|||
{| border="1" |
|||
Your first step should be getting access to the communication channels. |
|||
! scope="col" | Meeting Title |
|||
After that acquire accounts as most links in this document need internal accounts. |
|||
! scope="col" | Description |
|||
! scope="col" | Location |
|||
=Communication= |
|||
! scope="col" | Datetime |
|||
! scope="col" | Manager |
|||
== Chat == |
|||
|- |
|||
| BrainScaleS-1 Users Meeting |
|||
A lot of Vision communication, be it professional or personal (especially during the pandemic) happens in a slack-like chat https://chat.bioai.eu/visions. |
|||
| Users and hardware guys discussing about current topics related to hardware usage. |
|||
| ENI |
|||
There are several topic specific channels, some of them might be invite only (NDA's and stuff). Your supervisor should add you to relevant channels. |
|||
| Weekly, Monday at 10:30 |
|||
| SS (backup: ECM or CM) |
|||
== Mumble (not much used nowadays) == |
|||
|- |
|||
| PCB Meeting |
|||
There is also a [[https://www.mumble.info/ Mumble]] voice chat server. |
|||
| PCB and System-Design related discussions. Platform setup and installation also covered. [https://chat.bioai.eu/visions/channels/wsi-hardies #MeetingLog]. |
|||
URL: jitsi.bioai.eu |
|||
| ENI |
|||
Port: 64738 |
|||
| Weekly, Monday after Hardware Users Meeting (if necessary) |
|||
| AG |
|||
== Zoom == |
|||
|- |
|||
| BrainScaleS-2 Hardware Meeting |
|||
There are two permanent [http://f.einc.eu/f/a Zoom rooms] available. The first is used for most meetings. The second is backup if the first is already in use. Feel free to use the rooms for discussions or things like pair programming. |
|||
| Chip design meeting |
|||
Note that these rooms are meant for internal use only. If you want to meet with external people please ask BK for a one time zoom room. |
|||
| ENI |
|||
| Weekly, Tuesday at 10:00 |
|||
| JS |
|||
|- |
|||
| Software Meeting 😍 ❤ |
|||
| The Softies meet ☕ and talk 🚀. Logs and agenda can be found [https://openproject.bioai.eu/projects/symap2ic/meetings here]. |
|||
| ENI |
|||
| Weekly, Tuesday at 14:00 |
|||
| ECM (backup: OJB, CM, SS) |
|||
|- |
|||
| BrainScaleS-2 Users Meeting |
|||
| Next-generation hardware systems users talk about progress and problems. |
|||
| ENI |
|||
| Weekly, Wednesday at 10:00 |
|||
| CM (backup: ECM) |
|||
|- |
|||
| TMA Meeting |
|||
| Logs and agenda can be found [https://openproject.bioai.eu/projects/model/wiki#TMA-Meetings here]. |
|||
| ENI |
|||
| Weekly, Wednesday at 14:00 |
|||
| MAP |
|||
|- |
|||
| ASIC Meeting |
|||
| |
|||
| Seminarbox 1.Stock KIP, SB1 |
|||
| Weekly, Wednesday at 16:00, alternating between ASIC classic and ASIC DLS |
|||
| JS |
|||
|- |
|||
| F9/Electronic Vision(s)' Group Meeting |
|||
| Mandatory group meeting. Logs and agenda can be found [https://brainscales.kip.uni-heidelberg.de/internal/jss/Ag?m=showListOfGroupMeetings here] (login using [[Visions:NoobiesTutorial#Flagship.2Fex-BrainScaleS|BrainScaleS account]]). |
|||
| ENI |
|||
| Weekly, Thursday at 9:00 |
|||
| JS |
|||
|- |
|||
| FPGA Development Meeting |
|||
| Logs and agenda can be found [https://openproject.bioai.eu/projects/hmf-fpga/wiki/Hmf-fpga_meetings here]. |
|||
| ENI |
|||
| Weekly, Thursday at 13:00 |
|||
| AG (backup: ECM). |
|||
|- |
|||
| [https://wiki.kip.uni-heidelberg.de/KIPwiki/index.php/Visions_Privat:JournalClub Journal Club] |
|||
| Stay up-to-date with scientific literature (one featured publication + spot lights) [https://chat.bioai.eu/visions/channels/journal-club channel]. |
|||
| ENI |
|||
| Weekly, Friday at 11:00 |
|||
| DD, KS |
|||
|- |
|||
|} |
|||
=Accounts= |
=Accounts= |
||
Line 113: | Line 31: | ||
* KIP-Account (see [[Visions:NoobiesTutorial#KIP_Institute_Login|KIP Institute Login]]) |
* KIP-Account (see [[Visions:NoobiesTutorial#KIP_Institute_Login|KIP Institute Login]]) |
||
* Flagship/ex-BrainScaleS-Account (which provides Access to the gitviz-Repository) |
* Flagship/ex-BrainScaleS-Account (which provides Access to the gitviz-Repository) |
||
* EBRAINS Account |
|||
== KIP == |
|||
If you work on the waferscale hardware or need access to the computer cluster ask your supervisor to write an email to ECM (+ get an introduction by your supervisor). |
|||
If you do chip or FPGA development, you need ASIC permissions. Ask your supervisor to write an email to MD (+ get an introduction by your supervisor). |
|||
== Login == |
|||
=== KIP === |
|||
The KIP login process is used for both, physical (i.e. keys) and virtual (i.e. user login stuff) access to KIP facilities. |
The KIP login process is used for both, physical (i.e. keys) and virtual (i.e. user login stuff) access to KIP facilities. |
||
All F9 group services use some kind of KIP account/authentication. |
All F9 group services use some kind of KIP account/authentication. |
||
The login form can be found here: https://www.kip.uni-heidelberg.de/ |
The login form can be found here: https://www.kip.uni-heidelberg.de/loginform/ (needs KIP login). |
||
In addition the PDF forms "Einwilligungserklärung zur Veröffentlichung personenbezogener Daten" and "Allgemeine Verhaltensregeln im KIP" (your supervisor provides those, see https://www.kip.uni-heidelberg.de/internes/formulare) need to be filled out, signed (photo/scan) and sent to FK. |
|||
Rules (as a hint for your supervisor) regarding the "LOGIN Computing" part: |
Rules (as a hint for your supervisor) regarding the "LOGIN Computing" part: |
||
* students should '''not''' use their URZ account name but rather a readable abbreviation of their real name, e.g. <code> |
* students should '''not''' use their URZ account name but rather a readable abbreviation of their real name, e.g. <code>mmustermann</code> |
||
* state that the student should be added to f9 mailing list (IT) ... (it is an *alias* mailing list for kip_vision) |
* <del>state that the student should be added to f9 mailing list (IT) ... (it is an *alias* mailing list for kip_vision)</del> (not possible on web-based loginform) |
||
* same for kip visions wiki (IT) |
* <del>same for kip visions wiki (IT)</del> (not possible on web-based loginform) |
||
* chip design permission if needed |
* chip design permission if needed (⇒ ask MD) |
||
* everybody starts out as a member of F9_guests (field "3"); somewhat later (e.g. 6 months) the person may be also added to F9 (switch primary group, keep F9_guests as a secondary); this is triggered by a supervisor. |
|||
* '''internshippers and bachelor students should be assigned to primary group F9_guests''' (field "3") |
|||
** (this affects LDAP/POSIX group membership rights) |
|||
* master students and beyond should be assigned to primary group F9 (field "3") |
|||
** the supervisor has to verify that KIP IT created the account with proper settings :) |
|||
* (for the supervisor) don't forget to add the student into the internal list of students (the link can be found in the header of A-visionary-place) |
|||
If you need an building access key you will have to collect all signatures and deposit 50€ via bank transfer (ask FK for the details) (<del>give to Mrs. Hafranke or Mrs. Potthoff</del>). Suggested waypoints: |
|||
* Send the forms from above, fill out web-based login form, ask FK for bank transfer details. |
|||
* 1st floor: Signature of JS and FK |
|||
* Perform bank transfer, send transfer receipt (scan/photo) to FK and Petra Hafranke-Grauer (petra.hafranke-grauer@kip.uni-heidelberg.de); afterwards a key is programmed by J. Weight and H. Jacobsen will handout the keys. |
|||
* Ground floor: deposit for key in room 00.304 |
|||
* |
* <del>1st floor: Signature of JS and FK</del> |
||
* <del>Ground floor: deposit for key in room 00.304</del> |
|||
* 3rd floor: First go to EDV (they will cut off the lower part of the form) then go to P. Doust to ask for a key (he will keep the upper part of the form) |
|||
* <del>2nd floor: Signature of H. Jacobsen or alternatively E. Schmetzer</del> |
|||
* <del>3rd floor: First go to EDV (they will cut off the lower part of the form). The procedure for getting a key has changed. FK triggers and you can pick the key at Mr. Jacobsen's Office.</del> |
|||
==Flagship/ex-BrainScaleS== |
|||
=== Vision(s) === |
|||
Flagship/ex-BrainScaleS accounts are managed by Björn Kindler. |
|||
You can contact him directly bjoern.kindler@kip.uni-heidelberg.de. |
|||
This account is also needed for Open Project/Gerrit access. |
|||
==EBRAINS== |
|||
* inform cluster commissioner, i.e. CM, ECM, they will create wang home and slurm user |
|||
When you got your KIP mail address, please also: |
|||
* register for a EBRAINS account: https://ebrains.eu/register |
|||
* and click the "request to join" button for your task unit (in EBRAINS 2 likely: T6.3 and/or T6.1) in WP6: [https://wiki.ebrains.eu/bin/view/Identity/#/units/all:projects:EBRAINS2:WP6 EBRAINS2 WP6]. When granted, this gives you access to e.g. the [https://wiki.ebrains.eu/bin/view/Collabs/ebrains2-wp6 WP6 internal Collab]. |
|||
== Aftermath (DON'T FORGET TO DO THESE STEPS!!!!!!!!1111einself) == |
|||
'''Add the new person to the ''GroupMemberTopics'' sheet (linked in the header of [https://chat.bioai.eu:6443/visions/channels/a-visionary-place A Visionary Place]).''' |
|||
'''When you have all necessary accounts, do the following steps''' |
|||
* log into [https://openproject.bioai.eu/ OpenProject] |
|||
* inform cluster commissioner, i.e. CM, ECM, they will create wang (see [[#Data Management]]) home, add slurm user and set OP group permissions |
|||
* If you do chip or FPGA development, you need ASIC permissions. Ask your supervisor to write an email to MD (+ get an introduction by your supervisor). |
|||
* [https://openproject.bioai.eu/projects/symap2ic/wiki/Symap2icGitvizHowto Follow this instruction] to create a ssh key and register it in OpenProject and [[#Code Review (Gerrit)|Gerrit]] |
|||
* register your account with our own LDAP server for authentication. |
|||
export MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT=myBssOrFlagshipUsername |
|||
ldapsearch -h visions-ldap -x -W -D uid=${MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT},ou=brainscales,ou=people,dc=kip.uni-heidelberg,dc=de -b ou=brainscales,ou=people,dc=kip.uni-heidelberg,dc=de uid=${MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT} |
|||
* Sign form to allow open sourcing of contributions. |
* Sign form to allow open sourcing of contributions. |
||
= Documentation = |
|||
==Flagship/ex-BrainScaleS== |
|||
Flagship/ex-BrainScaleS accounts are managed by BK. |
|||
You can contact him directly. |
|||
This account is also needed for Redmine/GitViz access. |
|||
Central starting points for documentation besides this page are |
|||
== OpenProject Gitolite Repository Permissions == |
|||
* somewhat centralized [https://openproject.bioai.eu/projects/symap2ic/wiki starting point] for the Open Project wiki |
|||
* [https://electronicvisions.github.io/documentation-brainscales2/ BrainScaleS-2 User Documentation]: an introduction to the second neuromorphic chip generation |
|||
Afterwards you should ask the project managers to add you to the needed repositories (your supervisor can help you). |
|||
* [https://openproject.bioai.eu/projects/hbp-sp9-specification--d9-7-1 SP9 specification for BrainScaleS-1] |
|||
In case of ssh-key fails, please stick to the description in the symap2ic wiki (it's always the user's fault ;p). |
|||
* [http://www.kip.uni-heidelberg.de/vision/publications/ Publications], especially BSc, MSc, PhD theses |
|||
If you need further help, you may ask ECM/JS, the gitviz administrators. |
|||
== Search == |
|||
=Workplace= |
|||
Content is distributed in many different places. Some inspiration is given below: |
|||
==Who should I call for help? (FAQ) == |
|||
- '''The power is not working/toilet is overflowing/...''' → 54-5111 Störungsstelle („Alles was zur Grundversorgung gehört: Strom/Gas/Wasser“; „der Hausmeister würde ohnehin nur dort anrufen“) |
|||
* Search in Project Management: https://openproject.bioai.eu to find content in issues, project wikis, etc. |
|||
==Computers== |
|||
* Search in Code Review: https://gerrit.bioai.eu to find content in changesets |
|||
We use a Debian Jessie-based default installation. |
|||
* Search in Repositories: https://gerrit.bioai.eu/gitweb?p=PROJECTNAME.git to find repository contents (also git grep or pickaxe); there is no multi-project git search |
|||
The configuration is automatically managed. |
|||
* Search in Chat: https://chat.bioai.eu to find chat messages |
|||
In case of package requests, please ask KHS. |
|||
* Search in CI: https://jenkins.bioai.eu to find CI jobs |
|||
* Search in Monitoring: https://grafana.bioai.eu/grafana/ to find Dashboards, https://brainscales-r.kip.uni-heidelberg.de:10443/ to find individual time-series metrics. |
|||
=Meetings= |
|||
The [https://spack.readthedocs.io/en/latest/ spack] package manager is used to provide modules, if you run into issues try to find your question [https://openproject.bioai.eu/projects/symap2ic/wiki/Spack here]. |
|||
There are different meetings for various topics, some of which you should attend. |
|||
All regular meetings can be found [https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/visions-meetings here] |
|||
If the GUI session is blocked by a previous user, go to a non GUI session (Ctrl+Alt+F1/2/3) log in and start GUI with <code>startx</code> |
|||
=Workplace= |
|||
==Computers== |
|||
For a subset of PCs (mainly in the ENI container) there is a (currently unmanaged) Debian Jessie-based default installation, where you can login via your KIP account. |
|||
The list of visionary desktop computers can be found here [[Visions_Privat:ComputerUsage]]. |
The list of visionary desktop computers can be found here [[Visions_Privat:ComputerUsage]]. |
||
Available unused machines can be found in this list. |
|||
Available unused machines can be found in this list. If need talk to your supervisor about setting up a new installation for you. |
|||
==Space== |
|||
There are some places in the "Werkstatt" building (room 501) and in the container building. |
|||
In case of a transient shortage of spaces, internshippers and bachelors are expected to "fill up" (i.e. they do not have a static assignment to a specific place) all available places. |
|||
==Network== |
|||
If you want to use your own laptop inside the KIP network, you first need to register your laptop's MAC address. AG, JS are allowed to edit the list. |
If you want to use your own laptop inside the KIP network, you first need to register your laptop's MAC address. AG, JS are allowed to edit the list. |
||
==Network== |
|||
From inside the KIP network, outgoing traffic has to go through the [[EDV:KIPProxy]]. You can create a [https://en.wikipedia.org/wiki/Proxy_auto-config proxy auto-config] file, e.g. <code>/etc/proxy.pac</code> and configure your browser and system to use it. This way you do not need to manually switch proxy settings when switching between KIP and other networks. |
From inside the KIP network, outgoing traffic has to go through the [[EDV:KIPProxy]]. You can create a [https://en.wikipedia.org/wiki/Proxy_auto-config proxy auto-config] file, e.g. <code>/etc/proxy.pac</code> and configure your browser and system to use it. This way you do not need to manually switch proxy settings when switching between KIP and other networks. |
||
Line 196: | Line 137: | ||
</pre> |
</pre> |
||
==Home Office== |
|||
=Communication= |
|||
For information regarding home office including using inventory at home consult https://openproject.bioai.eu/projects/symap2ic/wiki/home-office. |
|||
To stay informed (and to provide information to others) you should join F9's own slack-like chat server on '''chatviz'''. |
|||
The main channels are: |
|||
=Computing= |
|||
{| border="1" |
|||
! scope="col" | Channel |
|||
! scope="col" | Topic |
|||
|- |
|||
! scope="row" | <code>#softies</code> |
|||
| Software and stuff |
|||
|- |
|||
! scope="row" | <code>#hardies</code> |
|||
| Hardware |
|||
|- |
|||
! scope="row" | <code>#tma</code> |
|||
| Modeling |
|||
|- |
|||
! scope="row" | <code>#clusteraner</code> |
|||
| Cluster usage and announcements |
|||
|} |
|||
==Know your Tools== |
|||
Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more! |
|||
You should create an account on https://chat.bioai.eu/visions (externally reachable). |
|||
https://missing.csail.mit.edu/ |
|||
=Computing= |
|||
==Cluster Access== |
==Cluster Access== |
||
Line 228: | Line 154: | ||
Having a KIP-Account gives you a home folder (distributed filesystem, AFS) on all machines running the default installation. |
Having a KIP-Account gives you a home folder (distributed filesystem, AFS) on all machines running the default installation. |
||
However, this is not sufficient for cluster usage. |
However, this is not sufficient for cluster usage. |
||
You need a |
You need a wang (see [[#Data Management]]) home and cluster access permissions. |
||
Both are managed by ECM and CM. |
Both are managed by ECM and CM. |
||
In case of a missing cluster_home you will see an error message when you lock into a compute server. |
In case of a missing cluster_home you will see an error message when you lock into a compute server. |
||
The frontend/login |
The frontend/login node is '''hel''' and you can access it via |
||
<code> ssh -X hel </code> |
|||
* ice |
|||
* ignatz |
|||
and you can access them via (example for ice, but works with any other name too) |
|||
<code> ssh -X ice </code> |
|||
If you are working from outside the institute, you can access the frontend via |
If you are working from outside the institute, you can access the frontend via |
||
<code> ssh -p <port> <kipuser>@brainscales-r.kip.uni-heidelberg.de </code> |
<code> ssh -p <port> <kipuser>@brainscales-r.kip.uni-heidelberg.de </code> |
||
The following ports give access to: |
The following ports give access to: |
||
* 7022: ice |
|||
* 11022: hel |
* 11022: hel |
||
* 12022: |
* 12022: comicsans (only a selection of users has access, "currently heavy WIP") |
||
Mosh ports are 50000 + X, e.g. 61022 for hel (<code>mosh brainscales-r.kip.uni-heidelberg.de --ssh="ssh -p 11022" -p 61022</code>). |
Mosh ports are 50000 + X, e.g. 61022 for hel (<code>mosh <kipuser>@brainscales-r.kip.uni-heidelberg.de --ssh="ssh -p 11022" -p 61022</code>). |
||
If the mosh port (e.g. 61022) is already being used by someone else, try the next one (or something in the range of [50000 + X, 50000 + 1000 + X)). |
If the mosh port (e.g. 61022) is already being used by someone else, try the next one (or something in the range of [50000 + X, 50000 + 1000 + X)). |
||
mosh does not work from within eduroam. |
|||
===Server Usage=== |
===Server Usage=== |
||
The |
The machine mentioned above is not the compute node itself, but is only the frontend to access the compute cluster. |
||
Large jobs (i.e. CPU/IO hogs or long-running things) on the frontend node will be killed by the administrators. |
Large jobs (i.e. CPU/IO hogs or long-running things) on the frontend node will be killed by the administrators. |
||
So for heavy work (read everything after the bug/syntax fixing) please dispatch execution to the cluster: |
So for heavy work (read everything after the bug/syntax fixing) please dispatch execution to the cluster: |
||
A quick introduction to the job scheduling system slurm used on our cluster can be found [https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/slurm-quick-userguide here] |
|||
srun -p [partitionname] [your command] |
|||
The default job gets 2 CPUs (1 hyperthreaded core) and 1/4 of nodes RAM. If your code runs in parallel or needs more memory, please specify this (e.g. 2 CPUs, 16GB RAM): |
|||
srun -p compile -c 2 --mem 16G [your command] |
|||
To run the job in background, please use: |
|||
sbatch -p simulation --wrap [your command] |
|||
This creates a <code>slurm-[jobid].out</code> log file containing all the console output. |
|||
In order to check the status of your jobs the command <code>squeue</code> can be used. For detailed information do: |
|||
scontrol show jobid -dd <jobid> |
|||
Jobs can be aborted (cancelled) by using: |
|||
scancel [jobid] |
|||
Each Slurm partition has a defined default and max time. You can look it up with |
|||
scontrol show partition [partitionname] |
|||
If your job runs longer than the default time it will be killed automatically by Slurm unless you give |
|||
--time hh:mm:ss |
|||
so your srun/sbatch command. You can not enforce times longer than the max time of this partition. |
|||
Accessing the BrainScaleS hardware is only possible via the <code>experiment</code> queue. |
|||
Spikey is accessible via <code>spikey</code> queue. To select a specific spikey, the <code>--gres=SpikeyXYZ</code> option is used. |
|||
DLS is accessible via <code>dls</code> queue. To select a specific dls board, the <code>--gres=[board id]</code> option is used. |
|||
More details can be found here [https://openproject.bioai.eu/projects/symap2ic/wiki/SLURM]. |
|||
As a side note the compute nodes have localtime set to UTC, so all logging times will be offset to local time. |
|||
However, this should never be a problem as you should always work with non-local date/time (e.g. UNIX epoch, UTC or something similar). |
|||
=====X on cluster nodes===== |
|||
Although not recommended, some old tools require X support. Follow the instructions at [https://openproject.bioai.eu/projects/one-neuron-demo/wiki] if you encounter such an old tool. |
|||
==FPGA & ASIC== |
|||
Servers, software and libraries are managed by MD. |
|||
===Servers=== |
|||
There are several login nodes for ASIC work, e.g., <code>vmimas</code>, <code>vtitan</code>, <code>vrhea</code>. |
|||
= B.Sc. / M.Sc. = |
|||
== Thesis == |
|||
* When thinking about how to structure your thesis, consider these [[Visions_Privat:ThesesCriteria|internal recommendations]]. |
|||
== B.Sc. colloquium / Theses hand-in dates == |
|||
* Find a suitable date for your colloquium and other things (KM & JS & you). A lot of people have full schedules, so do it well in advance! |
|||
* Set all the dates, inform the examination office (Prüfungssek.) '''and''' make sure that Felicitas Kleveta is up2date, too. |
|||
== Thesis Publication == |
|||
* It is strongly suggested to upload your Thesis to the KIP publications archive https://www.kip.uni-heidelberg.de/Veroeffentlichungen/new.php |
|||
== Results Guidelines == |
|||
* https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/visionarythesisguidelines |
|||
= Administrative Stuff = |
|||
== Travel == |
|||
* before travel: fill out travel request form (Dienstreiseantrag) and hand over to FK |
|||
* after travel: fill out reimbursement form (Dienstreiseabrechnungsformular) (provide invoices etc.) and hand over to FK |
|||
* when getting back the result: check if everything is correct, hand over to OA |
|||
The forms can be found here: https://www.kip.uni-heidelberg.de/service/verwaltung/form_forms (needs KIP login). |
|||
== Vacation == |
|||
* Ask your supervisor, you might be needed urgently during the desired time. |
|||
* Fill out your personal "Urlaubskarte" and get a signature from JS. If you have no contract, skip this step. Otherwise it is obligatory before you leave! |
|||
* Hand it over to FK. It will arrive in your post box a few days later with another signature. Now is a good time to note these days as vacation in your timesheet. |
|||
* Create an issue with start and due date of your absence for [https://openproject.bioai.eu/projects/vacation/work_packages/calendar our vacation calendar] so your colleagues know that you are on vacation. |
|||
== Internships == |
|||
[https://cloud.kip.uni-heidelberg.de/owncloud/index.php/s/m2KKZT1monFZ6QQ Schein] |
|||
== Windows Software == |
|||
If you need Windows software, e.g. to fill out forms (Word, Excel), you can log in remotely to a Windows machine: |
|||
<pre> |
|||
rdesktop kipwin |
|||
</pre> |
|||
Username: KIP\$your_accountname |
|||
== Orders == |
|||
* above 500€ => multiple offers (print out from some comparison website) needed |
|||
* up to 2.5k€ => get three different offers (ask three shops for offers) |
|||
** e.g. write to first three cheapest shops listed on some comparison websites |
|||
** KIP "Kundennummer"s: |
|||
*** Mindfactory: 10970071 |
|||
=Using The Hardware= |
|||
The [http://electronicvisions.github.io/hbp-sp9-guidebook/ HBP SP9 Guidebook] provides introductions to both, the Spikey system and the BrainScaleS system. |
|||
=Core Hardware Components= |
|||
For the BrainScaleS system, the NMPM hardware specification provides detailed information; see Jenkins doc job "HBP Spec". |
|||
TODO: Write something about hardware stuff. |
|||
====X on cluster nodes==== |
|||
=Data Management= |
|||
Although not recommended, some old tools require X support. Follow the instructions at [https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/x-on-clusternode] if you encounter such an old tool. |
|||
== Data Management == |
|||
The policy on F9-specific data storage is: |
|||
There are different NFS data storage mount points: |
|||
{| border="1" |
{| border="1" |
||
Line 432: | Line 244: | ||
|} |
|} |
||
==FPGA & ASIC== |
|||
=Software Development= |
|||
There are several login nodes for ASIC work, e.g., <code>vmimas</code>, <code>vtitan</code>, <code>vrhea</code>. |
|||
Most (all?) software developers work remotely on server machines. |
|||
Servers, software and libraries are managed by MD. |
|||
Tools like ''screen'' or ''tmux'' can keep your session open between reconnects. |
|||
=Using The Hardware= |
|||
==Git== |
|||
* BSS2: [https://electronicvisions.github.io/documentation-brainscales2/ BrainScaleS-2 User Documentation] gives an introduction to sw and hw usage |
|||
As a general rule, everything should be tracked in a version control system, in our case, that is ''git''. Period. If you hear git for the first time I highly recommend spending an hour going through a git tutorial of your choice. Here are some examples: |
|||
* BSS1: The [http://electronicvisions.github.io/hbp-sp9-guidebook/ HBP SP9 Guidebook] provides introductions to both, the Spikey system and the BrainScaleS system. |
|||
* [http://rogerdudler.github.io/git-guide/ The Simple Guide] |
|||
* TODO add one or two more? |
|||
= Software Development = |
|||
The F9 gitolite server is hosted on our OpenProject server: https://openproject.bioai.eu |
|||
When working with F9 you will most likely do software development in some shape or form. |
|||
Whether your own work should be tracked in the group gitviz or not, should be decided together with your supervisor. But mostly, you will need to checkout some repo for read access. |
|||
If your own/private work is not for the trash, you should request a repository (or contribute to an existing one) on gitviz. Have your supervisor ask KHS for a repository. |
|||
Most repositories that are used by more than one person follow a continuous integration (CI) workflow to ensure that things are always in a proper state. |
|||
Accessing external repositories using the git or ssh protocol requires the user to call ''socksify'' or ''tsocks'': |
|||
You will need to learn how to use our build tool waf, run jobs on the cluster, how git works, commit and review changes with our code review tool [[#Code Review (Gerrit)|Gerrit]] and many more things. |
|||
socksify git clone git://external.server/repo.git # on wheezy default installation |
|||
tsocks git clone git://external.server/repo.git # on 'new' jessie default installation |
|||
==Building Software or how I learned to stop worrying and love waf== |
|||
==License== |
|||
Keep your code contributions (L)GPL-clean because we might want to publish it on a public web site. |
|||
[https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/building-software-or-how-i-learned-to-stop-worrying-and-love-waf Quick introduction] on how to checkout and install a project using waf build tool |
|||
If you copy code from somewhere, verify license compatibility and '''mention''' the source as a code comment! |
|||
==Git== |
|||
As a general rule, everything should be tracked in a version control system, in our case, that is ''git''. Period. If you are not familiar with git we highly recommend spending an hour going through a git tutorial of your choice. Here are some examples: |
|||
* [http://rogerdudler.github.io/git-guide/ The Simple Guide] |
|||
* [https://www.sbf5.com/~cduan/technical/git/ Understanding Git Conceptually] Highly recommended as additional reading because it focuses on the concepts behind ''git'' |
|||
Whether your own work should be tracked in the group gitviz or not, should be decided together with your supervisor. But mostly, you will need to checkout some repo for read access. |
|||
If your own/private work is not for the trash, you should request a repository (or contribute to an existing one) on gitviz. |
|||
== Code Review (Gerrit) == |
== Code Review (Gerrit) == |
||
For core software components (and other repositories involving multiple developers), we use gerrit as a code review tool. |
For core software components (and other repositories involving multiple developers), we use gerrit as a code review tool. |
||
The server [https://gerrit.bioai.eu F9's Gerrit Server] and a small tutorial can be found here [https://openproject.bioai.eu/projects/symap2ic/wiki/Gerrit]. |
|||
The server [https://gerrit.bioai.eu F9's Gerrit Server] and a small tutorial can be found [https://openproject.bioai.eu/projects/symap2ic/wiki/Gerrit here]. |
|||
Gerrit uses BrainScaleS or Flagship accounts for authentication. Use |
|||
export MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT=myBssOrFlagshipUsername |
|||
ldapsearch -h visions-ldap -x -W -D uid=${MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT},ou=brainscales,ou=people,dc=kip.uni-heidelberg,dc=de -b ou=brainscales,ou=people,dc=kip.uni-heidelberg,dc=de uid=${MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT} |
|||
to register your account (or to verify your credentials). |
|||
== Continuous Integration (Jenkins) == |
== Continuous Integration (Jenkins) == |
||
Line 469: | Line 282: | ||
Contact YS (or ECM) for details. |
Contact YS (or ECM) for details. |
||
Jenkins uses BrainScaleS or Flagship accounts for authentication, see |
Jenkins uses BrainScaleS or Flagship accounts for authentication, see [[#Flagship/ex-BrainScaleS|Account section]]. |
||
== Code Style == |
|||
== Bug reports and redmine project management == |
|||
Bugs should be posted immediately in the redmine project associated with the module that produced the error. The title should be descriptive (it may only be changed by 'project managers' after creating the ticket). As a general rule, the traceback is necessary for the developer to find the actual bug, but the more relevant information are given the easier the fix. |
|||
Ideally, you create a minimal example that reproduces the problem and upload the script, including the module's loaded. |
|||
[https://openproject.bioai.eu F9's Redmine/OpenProject Server] |
|||
We have style guides for C++ and Python. [[https://openproject.bioai.eu/projects/symap2ic/wiki/CodeStyleGuide]] |
|||
To format your C++ code properly, run git-clang-format and inspect/add the resulting changes before committing. |
|||
==How to: Building Software== |
|||
To apply clang format on the current commit |
|||
> singularity exec --app visionary-defaults /containers/stable/latest git-clang-format HEAD^ |
|||
*log onto frontend (exp: hel) |
|||
There is also a convenient vim plugin |
|||
> ssh hel |
|||
[[https://github.com/rhysd/vim-clang-format]] |
|||
* Create and switch to project directory (choose path according to personal preference): |
|||
== Bug Reports and Project Management (OpenProject) == |
|||
> mkdir -p code/project_name |
|||
> cd code/project_name |
|||
Bugs should be posted immediately in the OpenProject project associated with the module that produced the error. The title should be descriptive. As a general rule, the traceback is necessary for the developer to find the actual bug, but the more relevant information are given the easier the fix. |
|||
* Load the waf build tool module. More information on [https://openproject.bioai.eu/projects/waf/wiki waf] |
|||
Ideally, you create a minimal example that reproduces the problem and upload the script, including the module's loaded. |
|||
[https://openproject.bioai.eu F9's OpenProject Server] |
|||
==How to: Building Papers== |
|||
> module load waf |
|||
We also perform (LaTeX) builds of the latest publications in our containerized software environment. |
|||
* Normally ssh will ask for the password of your private key every time you connect to another machine (e.g. during <code>git pull</code>). If you want to avoid this you can start <code>ssh-agent</code>, which will load/unlock your private key by asking you once and keep running in the background. |
|||
E.g. |
|||
> singularity exec --overlay /my/local/path/to/containers/overlays/2020-05-28_buster_texlive.img /my/local/path/to/containers/stable/latest make |
|||
> eval $(ssh-agent) |
|||
Please look for the latest overlay and use it. |
|||
*Add your personal ssh key agent to the agent (link -> create key?) |
|||
(Back story: We separated our LaTeX installation from the stable containers and use a filesystem overlay to add the LaTeX packages.) |
|||
Other information: |
|||
> ssh-add |
|||
* we try to generate figures from sources during the paper build (e.g. PDF from SVG or such stuff) |
|||
* however, we do store published PDFs (e.g. the pdf that was sent into review, …) |
|||
== Accessing external repositories == |
|||
*Choose the wanted project (exp: sthal) |
|||
using the git or ssh protocol requires the user to call ''socksify'' or ''tsocks'': |
|||
> waf setup --project sthal |
|||
# ——— or specify multiple projects: ——— |
|||
> waf setup --project sthal --project cake |
|||
socksify git clone git://external.server/repo.git # on wheezy default installation |
|||
* Configure and compile on the cluster. The default job gets 2 CPUs and 2GB of RAM. If your code runs in parallel or needs more memory, please specify this (e.g. 8 CPUs (-c8) or 20GB RAM (--mem=20G). We use singularity container to manage external dependencies, see [https://openproject.bioai.eu/projects/symap2ic/wiki/container Singularity] |
|||
tsocks git clone git://external.server/repo.git # on 'new' jessie default installation |
|||
==License== |
|||
> srun -p compile -c8 --pty singularity exec --app visionary-wafer /containers/stable/latest waf install --targets=* |
|||
Keep your code contributions (L)GPL-clean because we might want to publish it on a public web site. |
|||
If you copy code from somewhere, verify license compatibility and '''mention''' the source as a code comment! |
|||
= B.Sc. / M.Sc. = |
|||
*Set environment variable e.g. LD_LIBRARY_PATH or PATH to the compiled software |
|||
== Other requirements == |
|||
> module load localdir |
|||
* B.Sc.: At least 4 weeks (12 max) of internship are required → report (no slides required) in the group meeting. |
|||
*In order to pull and install the complete software stack such that the BrainScaleS [https://electronicvisions.github.io/hbp-sp9-guidebook/ Guidebook] examples are executable follow (assuming that we build on the cluster) |
|||
* M.Sc.: After 3 months in the group, a MFS talk is required in the group meeting (approx. 20min). It should cover the student's effort to get to know the field, read literature, efforts to learn about the tools and methods, etc. (BTW. the MFP talk is defined by the "Modelhandbuch". |
|||
== Thesis == |
|||
> module load waf |
|||
> waf setup --project=pyhmf --repo-db-url=https://github.com/electronicvisions/projects.git |
|||
> singularity exec --app visionary-wafer /containers/stable/latest waf configure |
|||
> srun -p compile -c8 --pty singularity exec --app visionary-wafer /containers/stable/latest waf install --targets=* |
|||
> module load localdir # load the compiled software stack |
|||
* When thinking about how to structure your thesis, consider these [[Visions_Privat:ThesesCriteria|internal recommendations]]. |
|||
*After installation changesets can be reviewed and uploaded to the Gerrit server. |
|||
== B.Sc. colloquium / Theses hand-in dates == |
|||
== Style == |
|||
* Find a suitable date for your colloquium and other things (KM & JS & you). A lot of people have full schedules, so do it well in advance! |
|||
We have style guides for C++ and Python. [[https://openproject.bioai.eu/projects/symap2ic/wiki/CodeStyleGuide]] |
|||
* Set all the dates, inform the examination office (Prüfungssek.) '''and''' make sure that Felicitas Kleveta is up2date, too. |
|||
== Thesis Publication == |
|||
To format your code properly, run git-clang-format and inspect/add the resulting changes before committing. |
|||
To apply clang format on the current commit |
|||
* It is strongly suggested to upload your thesis to the KIP publications archive https://www.kip.uni-heidelberg.de/Veroeffentlichungen/new.php |
|||
> singularity exec --app visionary-defaults /containers/stable/latest git-clang-format HEAD^ |
|||
* A printed version of your thesis is required for the "Lehrstuhl" archive; ask Felicitas Kleveta for details. |
|||
== Results Guidelines == |
|||
There is also a convenient vim plugin |
|||
[[https://github.com/rhysd/vim-clang-format]] |
|||
* https://brainscales-r.kip.uni-heidelberg.de/projects/symap2ic/wiki/visionarythesisguidelines |
|||
= Core Software Components = |
|||
== Funding acknowledgement == |
|||
This section gives a very brief description of the main software packages developed for the NMPM-1 and Spikey systems. |
|||
* for work, where the researcher itself was funded from HBP: "This research has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement Nos. 720270, 785907 and 945539 (Human Brain Project, HBP) and Horizon Europe grant agreement No. 101147319 (EBRAINS 2.0)" |
|||
Short introduction on how to get and build repos https://openproject.bioai.eu/projects/waf/wiki/Wiki |
|||
* for work, where the BrainScaleS systems were used (e.g. Bachelor and Master Thesis), please add an acknowledgement for the systems: "The work carried out in this ... Thesis used systems, which received funding from the European Union's Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreements Nos. 720270, 785907 and 945539 (Human Brain Project, HBP) and Horizon Europe grant agreement No. 101147319 (EBRAINS 2.0) |
|||
* (Explanation: 720270 is HBP SGA1 (1.4.2016-31.3.2018), 785907 is HBP SGA2 (1.4.2018-31.3.2020) and 945539 is HBP SGA3 (1.4.2020 - 31.3.2023). 101147319 is EBRAINS 2.0 in Horizon Europe (1.1.2024 - 31.12.2026) For most-current hardware use it is sufficient to acknowledge SGA2 and SGA3 as well as EBRAINS 2.0) |
|||
* for work where STRUCTURES or people involved in STRUCTURES (not only funded but involved) were involved, please add an acknowledgement: "This work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany ́s Excellence Strategy EXC 2181/1 - 390900948 (the Heidelberg STRUCTURES Excellence Cluster). " |
|||
= Administrative Stuff = |
|||
== Common == |
|||
==Who should I call for help? (FAQ) == |
|||
=== PyNN === |
|||
* '''The power is not working/toilet is overflowing/...''' → 54-5111 Störungsstelle („Alles was zur Grundversorgung gehört: Strom/Gas/Wasser“; „der Hausmeister würde ohnehin nur dort anrufen“) |
|||
A python API to specify neural networks, independent of the actual simulator used. Typical use case is to use it as frontend for simulations in nest or neuron. |
|||
* Office doors don't open (e.g. empty lock battery), and other "Haustechnik" stuff ⇒ haustechnik@kip.uni-heidelberg.de |
|||
Documentation is available on its webpage (sort of at least) [http://neuralensemble.org/trac/PyNN], in order to get started it is best to ask someone for a simple working script and trying to reproduce it with minor changes (ideally your supervisor has some propositions for you). |
|||
== Travel == |
|||
The BrainScaleS-hardware-specific PyNN implementation/backend. |
|||
Maintainers: ECM |
|||
* before travel: fill out travel request form (Dienstreiseantrag) and hand over to FK |
|||
=== halco === |
|||
* after travel: fill out reimbursement form (Dienstreiseabrechnungsformular) (provide invoices etc.) and hand over to FK |
|||
Hardware coordinate system for all modern (BSS-1 and later) systems. |
|||
* when getting back the result: check if everything is correct, hand over to OA |
|||
Maintainers: ECM, CM |
|||
The forms can be found here: https://www.kip.uni-heidelberg.de/service/verwaltung/form_forms (needs KIP login). |
|||
=== HostARQ === |
|||
The communication protocol stack for communication between the BrainScaleS-1/2 hardware (FCP FPGAs) and host computers. |
|||
Maintainers: ECM, CM, JI |
|||
== Vacation == |
|||
* Ask your supervisor, you might be needed urgently during the desired time. |
|||
== Spikey == |
|||
* Fill out your personal "Urlaubskarte" and get a signature from JS. If you have no contract, skip this step. Otherwise it is obligatory before you leave! |
|||
* Hand it over to FK. It will arrive in your post box a few days later with another signature. Now is a good time to note these days as vacation in your timesheet. |
|||
* It is optional but '''strongly suggested''' to allow automatic entry of your vacations into an [https://flagship.kip.uni-heidelberg.de/jss/WorkInfo?m=showAbsenceInfosUserView overview]. You can opt in at the top of our [https://flagship.kip.uni-heidelberg.de/jss/WorkInfo work info page]. |
|||
== Illness == |
|||
The Spikey-hardware-specific PyNN implementation/backend. |
|||
Maintainers: TP (backup: ECM) |
|||
Here's the latest (2023-04-06) information on how to report yourself sick by Elke Schmetzer: |
|||
=== SpikeyHAL === |
|||
Spikey hardware access layer. |
|||
Maintainers: AG or ECM |
|||
<blockquote> |
|||
The procedure for electronic certificates of incapacity to work has been in place since 01.01.2023. |
|||
Please note the following changes: |
|||
== BrainScaleS-1 == |
|||
From now on, please report to the email: krankmeldung@kip.uni-heidelberg.de and to your group leader in case of incapacity for work, stating the expected duration. We also need to know whether you are privately or legally insured. If the incapacity for work lasts longer than 3 days and you have been to the doctor and are on sick leave, we and your group leader need the relevant information as described above. |
|||
The same applies to subsequent sickness notifications. |
|||
As soon as you are fit for work again, report back to us as before, by email at krankmeldung@kip.uni-heidelberg.de and to your group leader. |
|||
Privately insured persons will continue to receive a certificate of incapacity for work in paper form and please hand this in to Ms Kalemou in future. |
|||
If you have any further questions please feel free to call Ms. Kalemou or me. |
|||
=== Cake === |
|||
</blockquote> |
|||
Calibration framework for the BrainScaleS hardware. |
|||
Maintainers: SS |
|||
== Internships == |
|||
The C++-layer providing a representation of neuronal network descriptions (generated by PyHMF) -- used for BrainScaleS hardware. |
|||
Maintainers: ECM |
|||
[[:File:Praktikumsschein.odt]] |
|||
=== Marocco === |
|||
The translation layer which converts abstract neuronal networks into a hardware bit stream (i.e. a valid hardware configuration) -- used for BrainScaleS hardware. |
|||
Maintainers: ECM, SS |
|||
== Windows Software == |
|||
StHAL, HALbe and hicann-system are the hardware access layers -- used for BrainScaleS hardware. |
|||
Maintainers: ECM, CM, SS |
|||
If you need Windows software, e.g. to fill out forms (Word, Excel), you can log in remotely to a Windows machine: |
|||
=== ESS === |
|||
<pre> |
|||
The Executable System Specification is a BrainScaleS hardware simulator. |
|||
rdesktop kipwin |
|||
Originally developed as a chip verification software by AG, it evolved into a neuronal network simulator (by BV). |
|||
</pre> |
|||
Maintainer: BV, OJB, SS |
|||
Username: KIP\$your_accountname |
|||
(From the outside you can perform a port-forwarding via <code>ssh -L 3389:kipwin.kip.uni-heidelberg.de:3389 hel</code> (if <code>hel</code> is in your ssh config) and run <code>rdesktop localhost</code>.) |
|||
== |
== Orders == |
||
* above 500€ => multiple offers (print out from some comparison website) needed |
|||
=== hxcomm === |
|||
* up to 2.5k€ => get three different offers (ask three shops for offers) |
|||
Communication interface between HICANN-X and Host computer (via HostARQ) |
|||
** e.g. write to first three cheapest shops listed on some comparison websites |
|||
Maintainers: PSP, ECM |
|||
** KIP "Kundennummer"s: |
|||
*** Mindfactory: 10970071 |
|||
=Abbreviated Names= |
|||
=== fisch === |
|||
FPGA Instruction Set Compiler (adapter between a "pretty" FPGA interface and the real world) |
|||
Maintainers: PSP, ECM |
|||
Check ''GroupMemberTopics'' link in the header of [https://chat.bioai.eu:6443/visions/channels/a-visionary-place A Visionary Place]. |
|||
=== haldls === |
|||
Hardware Abstraction Layer for BrainScaleS-2 systems. |
|||
Maintainers: PSP, ECM, CM |
|||
= Modeling Software Packages = |
|||
== SBS == |
|||
Allows for simple creation and sampling of and with Boltzmann machines of PyNN neurons. See [Tutorial[https://gerrit.bioai.eu/gitweb?p=model-nmsampling-sbs.git;a=blob;f=example/tutorial.py;h=4de680a72298c60d8eb46a6865853481965ce772;hb=HEAD]] (requires access to gitweb) Maintainer: OJB |
|||
= Documentation = |
|||
Central starting points for documentation besides this page are |
|||
* [https://openproject.bioai.eu/projects/hbp-sp9-specification--d9-7-1 SP9 specification for BrainScaleS-1] |
|||
* [https://openproject.bioai.eu/projects/symap2ic/wiki symap2ic Wiki] |
|||
* [http://www.kip.uni-heidelberg.de/vision/publications/ Publications], especially BSc, MSc, PhD theses |
Latest revision as of 13:26, 14 May 2024
Welcome to the Visions
This Wiki should help you getting started with the workflow of our group.
It is somewhat sorted by relevance. Your first step should be getting access to the communication channels. After that acquire accounts as most links in this document need internal accounts.
Communication
Chat
A lot of Vision communication, be it professional or personal (especially during the pandemic) happens in a slack-like chat https://chat.bioai.eu/visions.
There are several topic specific channels, some of them might be invite only (NDA's and stuff). Your supervisor should add you to relevant channels.
Mumble (not much used nowadays)
There is also a [Mumble] voice chat server. URL: jitsi.bioai.eu Port: 64738
Zoom
There are two permanent Zoom rooms available. The first is used for most meetings. The second is backup if the first is already in use. Feel free to use the rooms for discussions or things like pair programming. Note that these rooms are meant for internal use only. If you want to meet with external people please ask BK for a one time zoom room.
Accounts
Typically, you will need the following accounts:
- KIP-Account (see KIP Institute Login)
- Flagship/ex-BrainScaleS-Account (which provides Access to the gitviz-Repository)
- EBRAINS Account
KIP
The KIP login process is used for both, physical (i.e. keys) and virtual (i.e. user login stuff) access to KIP facilities. All F9 group services use some kind of KIP account/authentication. The login form can be found here: https://www.kip.uni-heidelberg.de/loginform/ (needs KIP login). In addition the PDF forms "Einwilligungserklärung zur Veröffentlichung personenbezogener Daten" and "Allgemeine Verhaltensregeln im KIP" (your supervisor provides those, see https://www.kip.uni-heidelberg.de/internes/formulare) need to be filled out, signed (photo/scan) and sent to FK.
Rules (as a hint for your supervisor) regarding the "LOGIN Computing" part:
- students should not use their URZ account name but rather a readable abbreviation of their real name, e.g.
mmustermann
state that the student should be added to f9 mailing list (IT) ... (it is an *alias* mailing list for kip_vision)(not possible on web-based loginform)same for kip visions wiki (IT)(not possible on web-based loginform)- chip design permission if needed (⇒ ask MD)
- everybody starts out as a member of F9_guests (field "3"); somewhat later (e.g. 6 months) the person may be also added to F9 (switch primary group, keep F9_guests as a secondary); this is triggered by a supervisor.
- (this affects LDAP/POSIX group membership rights)
- the supervisor has to verify that KIP IT created the account with proper settings :)
- (for the supervisor) don't forget to add the student into the internal list of students (the link can be found in the header of A-visionary-place)
If you need an building access key you will have to collect all signatures and deposit 50€ via bank transfer (ask FK for the details) (give to Mrs. Hafranke or Mrs. Potthoff). Suggested waypoints:
- Send the forms from above, fill out web-based login form, ask FK for bank transfer details.
- Perform bank transfer, send transfer receipt (scan/photo) to FK and Petra Hafranke-Grauer (petra.hafranke-grauer@kip.uni-heidelberg.de); afterwards a key is programmed by J. Weight and H. Jacobsen will handout the keys.
1st floor: Signature of JS and FKGround floor: deposit for key in room 00.3042nd floor: Signature of H. Jacobsen or alternatively E. Schmetzer3rd floor: First go to EDV (they will cut off the lower part of the form). The procedure for getting a key has changed. FK triggers and you can pick the key at Mr. Jacobsen's Office.
Flagship/ex-BrainScaleS
Flagship/ex-BrainScaleS accounts are managed by Björn Kindler. You can contact him directly bjoern.kindler@kip.uni-heidelberg.de. This account is also needed for Open Project/Gerrit access.
EBRAINS
When you got your KIP mail address, please also:
- register for a EBRAINS account: https://ebrains.eu/register
- and click the "request to join" button for your task unit (in EBRAINS 2 likely: T6.3 and/or T6.1) in WP6: EBRAINS2 WP6. When granted, this gives you access to e.g. the WP6 internal Collab.
Aftermath (DON'T FORGET TO DO THESE STEPS!!!!!!!!1111einself)
Add the new person to the GroupMemberTopics sheet (linked in the header of A Visionary Place).
When you have all necessary accounts, do the following steps
- log into OpenProject
- inform cluster commissioner, i.e. CM, ECM, they will create wang (see #Data Management) home, add slurm user and set OP group permissions
- If you do chip or FPGA development, you need ASIC permissions. Ask your supervisor to write an email to MD (+ get an introduction by your supervisor).
- Follow this instruction to create a ssh key and register it in OpenProject and Gerrit
- register your account with our own LDAP server for authentication.
export MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT=myBssOrFlagshipUsername ldapsearch -h visions-ldap -x -W -D uid=${MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT},ou=brainscales,ou=people,dc=kip.uni-heidelberg,dc=de -b ou=brainscales,ou=people,dc=kip.uni-heidelberg,dc=de uid=${MY_BRAINSCALES_OR_FLAGSHIP_ACCOUNT}
- Sign form to allow open sourcing of contributions.
Documentation
Central starting points for documentation besides this page are
- somewhat centralized starting point for the Open Project wiki
- BrainScaleS-2 User Documentation: an introduction to the second neuromorphic chip generation
- SP9 specification for BrainScaleS-1
- Publications, especially BSc, MSc, PhD theses
Search
Content is distributed in many different places. Some inspiration is given below:
- Search in Project Management: https://openproject.bioai.eu to find content in issues, project wikis, etc.
- Search in Code Review: https://gerrit.bioai.eu to find content in changesets
- Search in Repositories: https://gerrit.bioai.eu/gitweb?p=PROJECTNAME.git to find repository contents (also git grep or pickaxe); there is no multi-project git search
- Search in Chat: https://chat.bioai.eu to find chat messages
- Search in CI: https://jenkins.bioai.eu to find CI jobs
- Search in Monitoring: https://grafana.bioai.eu/grafana/ to find Dashboards, https://brainscales-r.kip.uni-heidelberg.de:10443/ to find individual time-series metrics.
Meetings
There are different meetings for various topics, some of which you should attend.
All regular meetings can be found here
Workplace
Computers
For a subset of PCs (mainly in the ENI container) there is a (currently unmanaged) Debian Jessie-based default installation, where you can login via your KIP account.
The list of visionary desktop computers can be found here Visions_Privat:ComputerUsage.
Available unused machines can be found in this list. If need talk to your supervisor about setting up a new installation for you.
If you want to use your own laptop inside the KIP network, you first need to register your laptop's MAC address. AG, JS are allowed to edit the list.
Network
From inside the KIP network, outgoing traffic has to go through the EDV:KIPProxy. You can create a proxy auto-config file, e.g. /etc/proxy.pac
and configure your browser and system to use it. This way you do not need to manually switch proxy settings when switching between KIP and other networks.
function FindProxyForURL(url, host) { if (isInNet(myIpAddress(), "129.206.180.0", "255.255.255.0")) { if (isInNet(host, "129.206.0.0", "255.255.0.0")) { return "DIRECT"; } return "PROXY proxy.kip.uni-heidelberg.de:8080" ; } else { return "DIRECT"; } }
Home Office
For information regarding home office including using inventory at home consult https://openproject.bioai.eu/projects/symap2ic/wiki/home-office.
Computing
Know your Tools
Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!
https://missing.csail.mit.edu/
Cluster Access
The F9 cluster is part of the BrainScaleS and HBP hardware systems. In times of idle nodes (i.e. the associated neuromorphic hardware parts are idle too), conventional software simulations can be run on the system. Please note, the cluster's main objective is controlling neuromorphic hardware and not number crunching. Having a KIP-Account gives you a home folder (distributed filesystem, AFS) on all machines running the default installation. However, this is not sufficient for cluster usage. You need a wang (see #Data Management) home and cluster access permissions. Both are managed by ECM and CM. In case of a missing cluster_home you will see an error message when you lock into a compute server.
The frontend/login node is hel and you can access it via
ssh -X hel
If you are working from outside the institute, you can access the frontend via
ssh -p <port> <kipuser>@brainscales-r.kip.uni-heidelberg.de
The following ports give access to:
- 11022: hel
- 12022: comicsans (only a selection of users has access, "currently heavy WIP")
Mosh ports are 50000 + X, e.g. 61022 for hel (mosh <kipuser>@brainscales-r.kip.uni-heidelberg.de --ssh="ssh -p 11022" -p 61022
).
If the mosh port (e.g. 61022) is already being used by someone else, try the next one (or something in the range of [50000 + X, 50000 + 1000 + X)).
mosh does not work from within eduroam.
Server Usage
The machine mentioned above is not the compute node itself, but is only the frontend to access the compute cluster. Large jobs (i.e. CPU/IO hogs or long-running things) on the frontend node will be killed by the administrators. So for heavy work (read everything after the bug/syntax fixing) please dispatch execution to the cluster:
A quick introduction to the job scheduling system slurm used on our cluster can be found here
X on cluster nodes
Although not recommended, some old tools require X support. Follow the instructions at [1] if you encounter such an old tool.
Data Management
There are different NFS data storage mount points:
Mount Point | Storage Backend | Redundancy | Backup Strategy | Usable Size | User Quota | Typical Application |
---|---|---|---|---|---|---|
/afs/kip/user/USERNAME
|
HDD | RAID | yes (1 version) | 10G | Distributed home directory | |
/scratch
|
SSD | — | — | Scratch/temp data; might be deleted at any time | ||
/wang
|
HDD | RAID6 (2R) | — | 13T | 0.3T | General purpose |
/ley
|
HDD | RAID6 (2R) | yes (ADSM; 1 version) | 7T | 0.1T | Important stuff (not too large!) |
/loh
|
4x Archive HDD | RAID5 (1R) | — | 16T | 1T | Archives of machines, homes, etc. |
/fasthome
|
NVM | — | — | Software projects (lots of compiling) |
FPGA & ASIC
There are several login nodes for ASIC work, e.g., vmimas
, vtitan
, vrhea
.
Servers, software and libraries are managed by MD.
Using The Hardware
- BSS2: BrainScaleS-2 User Documentation gives an introduction to sw and hw usage
- BSS1: The HBP SP9 Guidebook provides introductions to both, the Spikey system and the BrainScaleS system.
Software Development
When working with F9 you will most likely do software development in some shape or form.
Most repositories that are used by more than one person follow a continuous integration (CI) workflow to ensure that things are always in a proper state.
You will need to learn how to use our build tool waf, run jobs on the cluster, how git works, commit and review changes with our code review tool Gerrit and many more things.
Building Software or how I learned to stop worrying and love waf
Quick introduction on how to checkout and install a project using waf build tool
Git
As a general rule, everything should be tracked in a version control system, in our case, that is git. Period. If you are not familiar with git we highly recommend spending an hour going through a git tutorial of your choice. Here are some examples:
- The Simple Guide
- Understanding Git Conceptually Highly recommended as additional reading because it focuses on the concepts behind git
Whether your own work should be tracked in the group gitviz or not, should be decided together with your supervisor. But mostly, you will need to checkout some repo for read access. If your own/private work is not for the trash, you should request a repository (or contribute to an existing one) on gitviz.
Code Review (Gerrit)
For core software components (and other repositories involving multiple developers), we use gerrit as a code review tool.
The server F9's Gerrit Server and a small tutorial can be found here.
Continuous Integration (Jenkins)
We encourage continuous and automatic testing, see F9's Jenkins Server. Contact YS (or ECM) for details.
Jenkins uses BrainScaleS or Flagship accounts for authentication, see Account section.
Code Style
We have style guides for C++ and Python. [[2]]
To format your C++ code properly, run git-clang-format and inspect/add the resulting changes before committing. To apply clang format on the current commit
> singularity exec --app visionary-defaults /containers/stable/latest git-clang-format HEAD^
There is also a convenient vim plugin [[3]]
Bug Reports and Project Management (OpenProject)
Bugs should be posted immediately in the OpenProject project associated with the module that produced the error. The title should be descriptive. As a general rule, the traceback is necessary for the developer to find the actual bug, but the more relevant information are given the easier the fix. Ideally, you create a minimal example that reproduces the problem and upload the script, including the module's loaded. F9's OpenProject Server
How to: Building Papers
We also perform (LaTeX) builds of the latest publications in our containerized software environment. E.g.
> singularity exec --overlay /my/local/path/to/containers/overlays/2020-05-28_buster_texlive.img /my/local/path/to/containers/stable/latest make
Please look for the latest overlay and use it. (Back story: We separated our LaTeX installation from the stable containers and use a filesystem overlay to add the LaTeX packages.)
Other information:
- we try to generate figures from sources during the paper build (e.g. PDF from SVG or such stuff)
- however, we do store published PDFs (e.g. the pdf that was sent into review, …)
Accessing external repositories
using the git or ssh protocol requires the user to call socksify or tsocks:
socksify git clone git://external.server/repo.git # on wheezy default installation tsocks git clone git://external.server/repo.git # on 'new' jessie default installation
License
Keep your code contributions (L)GPL-clean because we might want to publish it on a public web site. If you copy code from somewhere, verify license compatibility and mention the source as a code comment!
B.Sc. / M.Sc.
Other requirements
- B.Sc.: At least 4 weeks (12 max) of internship are required → report (no slides required) in the group meeting.
- M.Sc.: After 3 months in the group, a MFS talk is required in the group meeting (approx. 20min). It should cover the student's effort to get to know the field, read literature, efforts to learn about the tools and methods, etc. (BTW. the MFP talk is defined by the "Modelhandbuch".
Thesis
- When thinking about how to structure your thesis, consider these internal recommendations.
B.Sc. colloquium / Theses hand-in dates
- Find a suitable date for your colloquium and other things (KM & JS & you). A lot of people have full schedules, so do it well in advance!
- Set all the dates, inform the examination office (Prüfungssek.) and make sure that Felicitas Kleveta is up2date, too.
Thesis Publication
- It is strongly suggested to upload your thesis to the KIP publications archive https://www.kip.uni-heidelberg.de/Veroeffentlichungen/new.php
- A printed version of your thesis is required for the "Lehrstuhl" archive; ask Felicitas Kleveta for details.
Results Guidelines
Funding acknowledgement
- for work, where the researcher itself was funded from HBP: "This research has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement Nos. 720270, 785907 and 945539 (Human Brain Project, HBP) and Horizon Europe grant agreement No. 101147319 (EBRAINS 2.0)"
- for work, where the BrainScaleS systems were used (e.g. Bachelor and Master Thesis), please add an acknowledgement for the systems: "The work carried out in this ... Thesis used systems, which received funding from the European Union's Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreements Nos. 720270, 785907 and 945539 (Human Brain Project, HBP) and Horizon Europe grant agreement No. 101147319 (EBRAINS 2.0)
- (Explanation: 720270 is HBP SGA1 (1.4.2016-31.3.2018), 785907 is HBP SGA2 (1.4.2018-31.3.2020) and 945539 is HBP SGA3 (1.4.2020 - 31.3.2023). 101147319 is EBRAINS 2.0 in Horizon Europe (1.1.2024 - 31.12.2026) For most-current hardware use it is sufficient to acknowledge SGA2 and SGA3 as well as EBRAINS 2.0)
- for work where STRUCTURES or people involved in STRUCTURES (not only funded but involved) were involved, please add an acknowledgement: "This work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany ́s Excellence Strategy EXC 2181/1 - 390900948 (the Heidelberg STRUCTURES Excellence Cluster). "
Administrative Stuff
Who should I call for help? (FAQ)
- The power is not working/toilet is overflowing/... → 54-5111 Störungsstelle („Alles was zur Grundversorgung gehört: Strom/Gas/Wasser“; „der Hausmeister würde ohnehin nur dort anrufen“)
- Office doors don't open (e.g. empty lock battery), and other "Haustechnik" stuff ⇒ haustechnik@kip.uni-heidelberg.de
Travel
- before travel: fill out travel request form (Dienstreiseantrag) and hand over to FK
- after travel: fill out reimbursement form (Dienstreiseabrechnungsformular) (provide invoices etc.) and hand over to FK
- when getting back the result: check if everything is correct, hand over to OA
The forms can be found here: https://www.kip.uni-heidelberg.de/service/verwaltung/form_forms (needs KIP login).
Vacation
- Ask your supervisor, you might be needed urgently during the desired time.
- Fill out your personal "Urlaubskarte" and get a signature from JS. If you have no contract, skip this step. Otherwise it is obligatory before you leave!
- Hand it over to FK. It will arrive in your post box a few days later with another signature. Now is a good time to note these days as vacation in your timesheet.
- It is optional but strongly suggested to allow automatic entry of your vacations into an overview. You can opt in at the top of our work info page.
Illness
Here's the latest (2023-04-06) information on how to report yourself sick by Elke Schmetzer:
The procedure for electronic certificates of incapacity to work has been in place since 01.01.2023.
Please note the following changes: From now on, please report to the email: krankmeldung@kip.uni-heidelberg.de and to your group leader in case of incapacity for work, stating the expected duration. We also need to know whether you are privately or legally insured. If the incapacity for work lasts longer than 3 days and you have been to the doctor and are on sick leave, we and your group leader need the relevant information as described above. The same applies to subsequent sickness notifications. As soon as you are fit for work again, report back to us as before, by email at krankmeldung@kip.uni-heidelberg.de and to your group leader. Privately insured persons will continue to receive a certificate of incapacity for work in paper form and please hand this in to Ms Kalemou in future.
If you have any further questions please feel free to call Ms. Kalemou or me.
Internships
Windows Software
If you need Windows software, e.g. to fill out forms (Word, Excel), you can log in remotely to a Windows machine:
rdesktop kipwin
Username: KIP\$your_accountname
(From the outside you can perform a port-forwarding via ssh -L 3389:kipwin.kip.uni-heidelberg.de:3389 hel
(if hel
is in your ssh config) and run rdesktop localhost
.)
Orders
- above 500€ => multiple offers (print out from some comparison website) needed
- up to 2.5k€ => get three different offers (ask three shops for offers)
- e.g. write to first three cheapest shops listed on some comparison websites
- KIP "Kundennummer"s:
- Mindfactory: 10970071
Abbreviated Names
Check GroupMemberTopics link in the header of A Visionary Place.