NESTML Tutorial. I.Blundell, M.J.Eppler, D.Plotnikov. Software Engineering RWTH Aachen. http://www.se-rwth.de/



Similar documents
Programming Languages CIS 443

How to use the Eclipse IDE for Java Application Development

Project 5 Twitter Analyzer Due: Fri :59:59 pm

BIOPHYSICS OF NERVE CELLS & NETWORKS

Global Variables. However, when global variables are used in a function block or control modules, they must be declared as external

Computational Mathematics with Python

Creating a Java application using Perfect Developer and the Java Develo...

Crystal Reports Integration Plugin for JIRA

Computational Mathematics with Python

Computational Mathematics with Python

Tutorial 5: Developing Java applications

To reduce or not to reduce, that is the question

Solving ODEs in Matlab. BP205 M.Tremont

Slides prepared by : Farzana Rahman TESTING WITH JUNIT IN ECLIPSE

NLP Programming Tutorial 0 - Programming Basics

Open Source Computational Fluid Dynamics

Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

CS170 Lab 11 Abstract Data Types & Objects

Netbeans IDE Tutorial for using the Weka API

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game

Computer Programming I & II*

LICENSE4J AUTO LICENSE GENERATION AND ACTIVATION SERVER USER GUIDE

Configuring the LCDS Load Test Tool

Algebra 2 Notes AII.7 Functions: Review, Domain/Range. Function: Domain: Range:

Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor

Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS Instructor: Michael Gelbart

Configuration Manual Yahoo Cloud System Benchmark (YCSB) 24-Mar-14 SEECS-NUST Faria Mehak

CS 378 Big Data Programming

10 Java API, Exceptions, and Collections

Practical Programming, 2nd Edition

Tutorial 0A Programming on the command line

Building a Python Plugin

Creating PL/SQL Blocks. Copyright 2007, Oracle. All rights reserved.

UniFinger Engine SDK Manual (sample) Version 3.0.0

Software Version: 9.8

PRI-(BASIC2) Preliminary Reference Information Mod date 3. Jun. 2015

Vaidya Guide. Table of contents

2.5 Zeros of a Polynomial Functions

CAPIX Job Scheduler User Guide

Xcode User Default Reference. (Legacy)

Scientific Programming with Python. Randy M. Wadkins, Ph.D. Asst. Prof. of Chemistry & Biochem.

Nupic Web Application development

FEEG Applied Programming 5 - Tutorial Session

Notepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3

LICENSE4J LICENSE MANAGER USER GUIDE

Learn CUDA in an Afternoon: Hands-on Practical Exercises

To get started, type one of these: helpwin, helpdesk, or demo. For product information, type tour or visit

Introduction to CloudScript

Real-time Device Monitoring Using AWS

Hands-on Exercises with Big Data

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science

Owner of the content within this article is Marc Grote Written by Marc Grote

Introduction to Eclipse

EA Technical Reference. Contents. Sampling... 2 Analog Sampling... 3 Memory... 3 Pulse Sampling...

TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform

MATLAB & Git Versioning: The Very Basics

How to develop your own app

Tutorial - Creating Pop Up Window Using New Features in WebDynpro Java CE 7.1 Ehp1

Hadoop Tutorial Group 7 - Tools For Big Data Indian Institute of Technology Bombay

.OR.AT.ATTORNEY.AUCTION.BARGAINS.BAYERN.BERLIN.BLACKFRIDAY.BOUTIQUE.BRUSSELS.BUILDERS

A Short Introduction to Writing Java Code. Zoltán Majó

J a v a Quiz (Unit 3, Test 0 Practice)

Basic Hadoop Programming Skills

Hadoop Basics with InfoSphere BigInsights

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v Steps to Developing a QNX Program Quickstart Guide

River Dell Regional School District. Computer Programming with Python Curriculum

OPEN ESB 2.3 TUTORIAL. (Throttling in BPEL SE)

Extreme computing lab exercises Session one

USER GUIDE. Snow Inventory Client for Unix Version Release date Document date

How To Understand The Distributed Potential Of A Dendritic Tree

Unleash the Power of HBase Shell

Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations

CS 378 Big Data Programming. Lecture 2 Map- Reduce

Department of Veterans Affairs. Open Source Electronic Health Record Services

Installation Guide of the Change Management API Reference Implementation

Memory Management Simulation Interactive Lab

Step 4: Configure a new Hadoop server This perspective will add a new snap-in to your bottom pane (along with Problems and Tasks), like so:

CS 2112 Lab: Version Control

Lab 2 - CMPS 1043, Computer Science I Introduction to File Input/Output (I/O) Projects and Solutions (C++)

8 Tutorial: Using ASN.1

TECHNOLOGY Computer Programming II Grade: 9-12 Standard 2: Technology and Society Interaction

Exponents. Exponents tell us how many times to multiply a base number by itself.

Visual Basic Programming. An Introduction

Exercise 1: Python Language Basics

Unix Scripts and Job Scheduling

System Area Management Software Tool Tip: Agent Deployment utilizing. the silent installation with Active Directory


WebSphere v5 Administration, Network Deployment Edition

Copy the.jar file into the plugins/ subfolder of your Eclipse installation. (e.g., C:\Program Files\Eclipse\plugins)

Outbreak questionnaires and data entry using the new EpiData modules

Return on Investment (ROI)

Exercise 0. Although Python(x,y) comes already with a great variety of scientic Python packages, we might have to install additional dependencies:

CA Workload Automation Agent for Databases

USING HDFS ON DISCOVERY CLUSTER TWO EXAMPLES - test1 and test2

Transcription:

NESTML Tutorial I.Blundell, M.J., D.Plotnikov http://www.se-rwth.de/

Seite 2 Usage of the NESTML Infrastructure Starting eclipse: cd /home/nest/eclipse_nestml./eclipse Working folder for the code generation: /home/nest/nestml_workshop/nestml_workshop_project Console-tool for the codegeneration java jar nestml-core-0.0.3-snapshot-jar-withdepencies.jar pathtofile.nestml Optional parameters: --target generationpath (current directory if omitted) Change to the generated folder cd codegeneration\neuron_level_1 (or _2, _3 for particular task) Execute the following 3 commands (enter them individually) sh bootstrap.sh./configure --with-nest=${nest_install_dir}/bin/nest-config make && make install

Seite 3 Task 1: Simple Case Integrate neuron 1/2 Implement a simple integrate neuron The neuron doesn t spike, but integrates over the time

Seite 4 Task 1: Simple Case Integrate neuron 2/2 Use the template neuron_level_1.nestml Fix errors showed by the editor Fill/ext TODO The dynamics is described as: Use tester_workshop_neuron_level_1.py to test

Seite 5 Task 2: Threshold Integrate and fire neuron 1/2 Add the threshold test in the dynamics Increase the refractory time to 20 ms

Seite 6 Task 2: Threshold Integrate and fire neuron 2/2 Use the template neuron_level_2.nestml Fill/ext TODOs Implement threshold crossing using the variable thresholdtheta Use python tester_workshop_neuron_level_2.py to test

Seite 7 Task 3: Adaptive Threshold 1/2 Make an adaption of the threshold after each spiking

Task 3: Adaptive Threshold 2/2 Seite 8 Use the template neuron_level_3.nestml Fill/ext TODO Use a threshold adaption, e.g. Theta = Theta + 3 after spiking Use tester_workshop_neuron_level_3.py to test

Seite 9 Language Concepts

Seite 10 Procedural Language: Declarations Multiple variables in the same declaration Type Optional initial value a, b, c real = 0 x real = 3; y real = 4; z real f real = -2e12 Possible types: integer, real, string, ms, mv,

Seite 11 Simple Programming Language Function Calls base, power real = 0 pow(base, power) Function name Parameters Important pre-defi functions: emitspike(): emits spike exp(x): Returns the base-e exponential function of x, which is e raised to the power x: e^x pow(base, power): raises base to the power exponent. Constants: E: Euler's number

Seite 12 Simple Programming Language: Control flow 1/2 if 2 < 3:... if 2 < 3:... else:... if 2 < 3:... elif 4>6:... else:... x real for x in 1... 5 : x real for x in 1... 5 step 2: x real for x in 1... -5.6 step 0.1: x, y real x = 1 y = 2 while x <= 10: y = x*2 x = x+1

Seite 13 NESTML Model structure Package name. Relevant for model crossreferences. package testing: neuron name Mandatory part describing inputs Mandatory part describing outputs neuron WorkingNeuron: state: i_0 mv input: spikebuffer output: spike Declarations are possible, same for parameter, internals <- inhibitory excitatory spike Dynamics definition dynamics timestep(t ms): Entire SPL code is possible

Seite 14 Buffer Blocks input: buffername <- inhibitory excitatory spike spike and current are possible inhibitory, excitatory, both or none are possible output: spike spike and current are possible

Seite 15 Simple Programming Language Differential Equations dynamics timestep(t ms): ODE: G := E/tau_syn) * t * exp(-1/tau_syn*t) Optional current declarations as equations (zero or more) d/dt V := -1/Tau * V + 1/C_m * G + I_e + cur One ore more differential equations