Rust for scientific computing

I am much impressed by Python’s expressiveness, ease of programming and development speed. However, as a dynamically typed language pure Python suffers from poor performance, which heavily impacts the numerical algorithms. Therefore, many of the computational tasks are often dispatched to binary Python extensions implemented in C, C++ or other languages. Indeed, the ease of interfacing with external languages is another of Python’s super powers, which also led to its reputation as the glue language 1.

Recently, I have been experimenting with developing Python extensions in Rust, using the amazing pyo32 library (“crate” in Rust world). Although the learning curve is steep at times (hello borrow checker and lifetime annotations), the official Rust book3 does great job in explaining complex topics.

Continue reading “Rust for scientific computing”

Generating LaTeX tables from CSV files

I am very committed to the idea of the reproducibility. The way I understand the term is that there should be a close link between the results presented in the paper and the raw data. It happens all too often that some pre-processing step essential for the results presented in the paper is modified slightly during the preparation of the manuscript, but the figures, tables and statistics are not updated accordingly. Continue reading “Generating LaTeX tables from CSV files”

Python Autumn School 2010

Our next school for Advanced Programming in Python will take place in Trento, Italy on October 4th-8th, 2010. Application deadline: August 31st, 2010. Bellow will you find the detailed program:

Day 0 — Software Carpentry & Advanced Python

  • Documenting code and using version control
  • Object-oriented programming, design patterns, and agile programming
  • Exception handling, lambdas, decorators, context managers, metaclasses

Day 1 — Software Carpentry

  • Test-driven development, unit testing & Quality Assurance
  • Debugging, profiling and benchmarking techniques
  • Data serialization: from pickle to databases

Day 2 — Scientific Tools for Python

  • Advanced NumPy
  • The Quest for Speed (intro): Interfacing to C
  • Programming project

Day 3 — The Quest for Speed

  • Writing parallel applications in Python
  • When parallelization does not help: the starving CPUs problem
  • Programming project

Day 4 — Practical Software Development

  • Efficient programming in teams
  • Programming project
  • The Pac-Man Tournament

Bernstein Stammtisch

Today (Wednesday, October 29th) Berstein Master students, PhD students, Postdocs and other people interested in neuroscience are meeting in Buchhandlung at a Stammtisch. This monthly reunion is a great opportuinity to get to know people related to Bernstein Center and exchange some ideas about neuroscience and other current topics. You are all invited!!

Buchhandlung
Tucholskystr., near the corner Auguststr.
October 29th, starting 19 hrs

I hope to meet you there.