Changes for page Co-Simulation The Virtual Brain Multiscale
Last modified by ldomide on 2024/04/08 12:55
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.d ionperd1 +XWiki.ldomide - Content
-
... ... @@ -5,7 +5,7 @@ 5 5 = (% style="color:inherit" %)TVB Co-Simulation {{html}}<iframe width="302" height="170" src="https://www.youtube.com/embed/6hEuvxD7IDk?list=PLVtblERyzDeLcVv4BbW3BvmO8D-qVZxKf" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{{/html}} (%%) = 6 6 7 7 8 -(% style="color:inherit" %)Multiscale: TVB, NEST, (%%)ANNarchy, N ETPYNE , Elephant, PySpike8 +(% style="color:inherit" %)Multiscale: TVB, NEST, (%%)ANNarchy, NetPyNE , Elephant, PySpike 9 9 10 10 (% style="color:inherit" %)Authors: (%%)D. Perdikis, A. Blickensdörfer, V. Bragin, L. Domide, J. Mersmann, M. Schirner, P. Ritter(% style="color:inherit" %) 11 11 ))) ... ... @@ -20,39 +20,44 @@ 20 20 * TVB Dedicated Wiki [[https:~~/~~/wiki.ebrains.eu/bin/view/Collabs/the-virtual-brain/>>url:https://wiki.ebrains.eu/bin/view/Collabs/the-virtual-brain/]] 21 21 * TVB in HBP User Story [[https:~~/~~/wiki.ebrains.eu/bin/view/Collabs/user-story-tvb/>>url:https://wiki.ebrains.eu/bin/view/Collabs/user-story-tvb/]] 22 22 23 -== UseourJupyter Hub setup online==23 +== == 24 24 25 - Wehave setup a Jupyter Hub service with tvb-multiscale as backed already prepared. You will onlyneed anHBPaccountforaccessing this: [[https:~~/~~/tvb-multiscale.apps.hbp.eu/>>https://tvb-multiscale.apps.hbp.eu/]]25 +== Running TVB-MULTISCALE at EBRAINS JupyterLab == 26 26 27 -T his JupyterHub installation works smoothly with HBP Collab user credentials (login only once at HBP and get access here too). We use a custom Docker Hub tvb-multiscale image as abackend, and thus a readyto use environment isavailableimmediately,withoutthe need of anylocal installation ordownload. Thisshouldbethe ideal env fordemos, presentationsoreven workshops with tvb-multiscale.27 +TVB-multiscale is made available at [[EBRAINS JupyterLab>>https://lab.ebrains.eu/]]. 28 28 29 - **[[image:https://lh6.googleusercontent.com/ytx9eYpMcL3cCScX2_Sxm4CeBW0xbKW3xKsfO2zSId10bW0gw1kiN2_SkexyYBCsF-sKsu0MaJC4cZvGVfQPjMoPBLiePbkvXOZd8BgY3Q0kFzSkRCqQ183lgDQv_6PYoqS3s7uJ||height="149"width="614"]]**29 +All the user has to do is log in with their EBRAINS credentials, and start a Python console or a Jupyter notebook using the kernel "EBRAINS-23.09" (or a more recent version), where TVB-multiscale can be imported (e.g., via "import tvb_multiscale"). All necessary TVB-multiscale dependencies (NEST, ANNarchy, NetPyNE (NEURON), Elephant, Pyspike) are also installed and available. 30 30 31 - Currently,theusers canaccess2folders://TVB-*-Examples//and//Contributed-Notebooks//.31 +This collab contains various examples of using TVB-Multiscale with all three supported spiking simulators. We suggest copying the contents of this collab to your Library or to any collab owned by you, and running them there (note that the user's drive offers persistent storage, i.e. users will find their files after logging out and in again), as follows: 32 32 33 - Thenotebooks under **TVB-*-Examples** are public,shared by everyoneaccessingtheinstance.Periodically,we will clean all changesunderTVB-*-Examples folder(by redeployingthepod image),andshowthe originalexamplenotebooks submitted on our Github repo. If usersintend to contributehere, theyare encouraged tosubmit changes through PullRequests ([[https:~~/~~/github.com/the-virtual-brain/tvb-multiscale>>url:https://github.com/the-virtual-brain/tvb-multiscale]])33 +~1. Select `Drive` on the left of the current page (or use [[this link>>https://wiki.ebrains.eu/bin/view/Collabs/the-virtual-brain-multiscale/Drive||rel="noopener noreferrer" target="_blank"]]). 34 34 35 - **[[image:https://lh6.googleusercontent.com/nnsM0mhXQinmQsJwZwwwe5Sx7f-tZc8t4ELnCh9DwksyVEPUE-jixJTkhoP4l25VKwlDGoXACWtnuxQM9NMOCYbQOzDesgMDlT3sntow___vsEqRVd4OwqMY4BPyBiLJ32BnUbmM||height="267"width="614"]]**35 +2. Check the `tvb-multiscale-collab` folder checkbox, and copy it to your `My Library` ("copy" icon will appear above the files/folders list). 36 36 37 - Folder **Contributed-Notebooks**is notshared.Here,users canexperiment with theirownprivate examples. This folderis persistedon restartsintheuserHBP Collab personalspace. Thus,users will be abletoaccess their work even after a redeploy. (e.g.duringa workshopeveryparticipant couldhavein here his own exercise solution).37 +3. Select `Lab` (on the left), and navigate to the destination where you just copied the folder. 38 38 39 +4. Enter the `tvb-multiscale-collab` folder, and open either of example notebooks. Ensure you select the appropriate ipykernel (EBRAINS-23.09 or a more recent one) 40 + 41 + 39 39 == Running TVB-MULTISCALE locally == 40 40 41 -See more on Github [[https:~~/~~/github.com/the-virtual-brain/tvb-multiscale>>url:https://github.com/the-virtual-brain/tvb-multiscale]] and check this notebook example: [[https:~~/~~/drive.ebrains.eu/f/b3ea5740fcc34f12af7a/?dl=1>>url:https://drive.ebrains.eu/f/b3ea5740fcc34f12af7a/?dl=1]]44 +See more on Github [[https:~~/~~/github.com/the-virtual-brain/tvb-multiscale>>url:https://github.com/the-virtual-brain/tvb-multiscale]] . 42 42 43 - Thisnotebook will be ok to download and try yourself locally, after you have also prepared and launched locally a Docker env: [[https:~~/~~/hub.docker.com/r/thevirtualbrain/tvb-multiscale>>https://hub.docker.com/r/thevirtualbrain/tvb-multiscale]]46 +Documented notebooks and other examples will be ok to download and try yourself locally, after you have also prepared and launched locally a Docker env: [[https:~~/~~/hub.docker.com/r/thevirtualbrain/tvb-multiscale>>https://hub.docker.com/r/thevirtualbrain/tvb-multiscale]] 44 44 45 45 This is the path recommended for people working closely with tvb-multiscale. They are able to download it in their local work env and code freely and fast with it. 46 46 47 -== RunningTVB-MULTISCALEjobs on CSCS infrastructure from HBP collab==50 +== == 48 48 49 - TheCSCS and HBP Collab deployment of tvb-multiscale is agoodexampletoshow how tvb-multiscalecanrun with anHPCbackend. This will be efficient when the simulation jobs are very large. From our experience, withsmall jobs,the stage-in/out time isconsiderable, andthen theusermight bebetterwith just a local run. Also, this deploymentrequiresthat **the user have an active CSCS personalaccount**. More details on how to use this deployment canbefound in this movie: [[https:~~/~~/drive.google.com/open?id=1osF263FK_NjhZcBJfpSy-F7qkbYs3Q-E>>url:https://drive.google.com/open?id=1osF263FK_NjhZcBJfpSy-F7qkbYs3Q-E]]52 +== Running TVB-MULTISCALE jobs on HPC infrastructure from HBP collab == 50 50 54 +tvb-multiscale can run with an HPC backend. This will be efficient when the simulation jobs are very large. From our experience, with small jobs, the stage-in/out time is considerable, and then the user might be better with just a local run. Also, such a deployment requires that **the user have an active HPC personal account and allocation project active**. More details on how to use this deployment can be found in this movie: [[https:~~/~~/drive.google.com/open?id=1osF263FK_NjhZcBJfpSy-F7qkbYs3Q-E>>url:https://drive.google.com/open?id=1osF263FK_NjhZcBJfpSy-F7qkbYs3Q-E]] 55 + 51 51 * Create a collab space of your own 52 52 * Clone and run in your HBP Collab Hub ([[https:~~/~~/lab.ebrains.eu/>>url:https://lab.ebrains.eu/]]) the notebooks from here: [[https:~~/~~/drive.ebrains.eu/d/245e6c13082f45bcacfa/>>url:https://drive.ebrains.eu/d/245e6c13082f45bcacfa/]] 53 -** test_tvb-nest_installation.ipynb Run the cosimulate_tvb_nest.sh script on the C SCSDaintsupercomputer. In this example, basically we are running the //installation_test.py// file which is in the docker folder.58 +** test_tvb-nest_installation.ipynb Run the cosimulate_tvb_nest.sh script on the HPC supercomputer where you have an account active. In this example, basically we are running the //installation_test.py// file which is in the docker folder. 54 54 ** run_custom_cosimulation.ipynb For this example we are using the //cosimulate_with_staging.sh// script in order to pull the tvb-multiscale docker image and we are using a custom simulation script (from Github page) which will be uploaded in the staging in phase 55 -** run_custom_cosimulation_from_notebook.ipynb This example is running the same simulation as the example above but instead of using an external file with the simulation code we will build a simulation file from a few notebook cells and we will pass this file to the C SCS server.60 +** run_custom_cosimulation_from_notebook.ipynb This example is running the same simulation as the example above but instead of using an external file with the simulation code we will build a simulation file from a few notebook cells and we will pass this file to the HPC. 56 56 57 57 Few technical details about what we do in these notebooks: 58 58 ... ... @@ -66,10 +66,10 @@ 66 66 67 67 >tr = unicore_client.Transport(oauth.get_token()) 68 68 >r = unicore_client.Registry(tr, unicore_client._HBP_REGISTRY_URL) 69 -># use "DAINT-CSCS" change i fanother supercomputeris preparedforusage74 +># we used "DAINT-CSCS", but you should change it to another supercomputer where you have a project active 70 70 >client = r.site('DAINT-CSCS') 71 71 72 - 1. Prepare job submission77 +2. Prepare job submission 73 73 74 74 In this step we have to prepare a JSON object which will be used in the job submission process. 75 75 ... ... @@ -86,7 +86,7 @@ 86 86 >my_job['Resources'] = { 87 87 > "CPUs": "1"} 88 88 89 - 1. Actual job submission94 +3. Actual job submission 90 90 91 91 In order to submit a job we have to use the JSON built in the previous step and also if we have some local files, we have to give their paths as a list of strings (inputs argument) so the UNICORE library will upload them in the job's working directory in the staging in phase, before launching the job. 92 92 ... ... @@ -93,7 +93,7 @@ 93 93 >job = site_client.new_job(job_description=my_job, inputs=['/path1', '/path2']) 94 94 >job.properties 95 95 96 - 1. Wait until job is completed and check the results101 +4. Wait until job is completed and check the results 97 97 98 98 Wait until the job is completed using the following command 99 99