Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 8.73 KB

README.md

File metadata and controls

47 lines (35 loc) · 8.73 KB

PSST . . . It's well Documented!

arXiv made-with-python tensorflow Binder GitHub license GitHub forks GitHub stars

Welcome to Parallelised Scalable Simulations in TensorFlow, A tutorial series about... well... making highly parallelised differential equation based simulations that are scalable across multiple platforms using Python, an easily accessible general purpose programming language, and the power of Google's open source package TensorFlow.

PSST

About PSST

Neuronal networks are often modeled as systems of coupled, nonlinear, ordinary or partial differential equations. The number of differential equations used to model a network increases with the size of the network and the level of detail used to model individual neurons and synapses. As one scales up the size of the simulation it becomes important to use powerful computing platforms. Many tools exist that solve these equations numerically. However, these tools are often platform-specific. There is a high barrier of entry to developing flexible general purpose code that is platform independent and supports hardware acceleration on modern computing architectures such as GPUs/TPUs and Distributed Platforms. TensorFlow is a Python-based open-source package initially designed for machine learning algorithms, but it presents a scalable environment for a variety of computations including solving differential equations using iterative algorithms such as Euler and Runge-Kutta methods. We have organized as a series of tutorials that demonstrate how to harness the power of TensorFlow’s data-flow programming paradigm to solve differential equations.

Our tutorial is a simple exposition of numerical methods to solve ordinary differential equations using Python and TensorFlow. It consists of a series of Python notebooks that accompany the proposed manuscript. Over the course of six sessions, we lead novice programmers from integrating simple 1-dimensional differential equations using Python, to solving a large system (1000’s of differential equations) of coupled conductance-based neurons using a highly parallelised and scalable framework that uses Python and TensorFlow.

Tutorial Content

Tutorial Day Run Run View only (no execution)
Day 1: Of Numerical Integration and Python Open In Colab Open In kaggle View the notebook
Day 2: Let the Tensors Flow Open In Colab Open In kaggle View the notebook
Day 3: Cells in Silicon Open In Colab Open In kaggle View the notebook
Day 4: Neurons and Networks Open In Colab Open In kaggle View the notebook
Day 5: Optimal Mind Control Open In Colab Open In kaggle View the notebook
Day 6: Example Implementation (Locust AL) Open In Colab Open In kaggle View the notebook
Day 7: (Optional) Distributed Tensorflow Open In Colab Open In kaggle View the notebook

Pre-rendered HTML files are available in the 'static' folder on each day

WARNING: If you are running PSST using Kaggle, make sure you have logged in to your verified Kaggle account and enabled Internet Access for the kernel. If you do not do so, the code will give errors from Day 5 onwards. For instructions on enabling Internet on Kaggle Kernels, visit: https://www.kaggle.com/product-feedback/63544

Requirements

  • Python 3.9 or above
  • Jupyter Notebook
  • NumPy 1.20 or above
  • MatPlotLib 3.4.3 or above
  • Seaborn 0.11.2 or above
  • TensorFlow CPU/GPU (2.8 or above)

Happy Coding!

Cheers, Rishika Mohanta and Collins Assisi