Just last week, I attended Scipy India 2015, an annual conference on scientific applications of Python. It was great, very informative and I learned a lot of things. Below are some of the notes I made at the conference. Note: These are for my own reference, but I believe will be worth your time if you labor through my gibberish.

Coupons

Scipy India 2015 - IIT Bombay

Day 1

8:30 - 09:00 AM Registration and Breakfast

Session 1: Setup

9:00 - 10:00 AM
  1. Installation of Annaconda

  2. Virtualbox, Andreas’ virtual image/ virtualbox Andreas’ virtual image

Session 2: Introduction to Scientific Computing with Python

Prabhu Ramchandran and Jarrod Millman

10:00 - 11:51 AM

Shortcuts:

ipython -pylab
Ctrl + D Exit
Ctrl + a Start of line
Ctrl + e End of line
Ctrl + r Search
  • Slicing is NOT copying, view of the same data.
  • Slides

    01:00 - 02:00 PM Lunch

Session 3: SymPy

Sumith

02:00 - 04:00 PM

Symbolic mathematics. Computer Algebra System (CAS)

  • Discrete math
  • Equations
  • Geometry

Example:

  x           x       
 sin(x) +  cos(x)
init_printing() # to get LaTeX like formatting
simplify('string') #Converts string into symbols/Simplifies
cos(2).evalf() #Evaluates the values

Session 4: Introduction to data anaysis with pandas**

Bargava Subramanian

04:25 - 06:00 PM
  • dataframe like r

Session 5: BioPython

Sourav Singh

06:00 - 07:00 PM

Day 2

Session 1: NetworkX

Mridul Seth and Himanshu Mishra

09:00 - 11:00 AM
  • Graph Theory in Python
  • add nodes/edges
  • Tutorial

Session 2: Domain Specific Languages and High Performance computing in Python

Andreas Klöckner

11:00 - 01:00 PM
  • NO : My code is xxxx faster
  • YES : My code achieves 37% of max floating point performance.

  • Code is a Spaghetti mess

Divide

  • Math work
  • Performance work

  • Mathematically-oriented mini-languages (DSLs)
  • Domain-specific optimizations and transformations.

Tutorial

  • Building Languages
  • OpenCL
  • Case study - numpy - einsum
  • Loopy

Requirements

Demo

Session 3: Pandas applications

by Prof. Madhu Belur, Saurabh Kumar & Shana Moothedath

02:00 - 03:00 PM
  • TA
  • GATE

Tutorial

Session 4: Pyomo - COIN-OR optimization

by Prof. Ashutosh Mahajan, Prof. Jayendran Venkateswaran & Mr. Atul Kumar

03:00 - 04:00 PM
  • Python Optimization Modeling Objects
  • Non-linear optimization
  • Website

Day 3

Andreas Klöckner’s Keynote

09:15 - 10:15 AM
  • Sandy Bridge vs Broadwell performance
  • Vector processor not GPU (FP math)

OpenCL

  • Device Neutral
  • JIT built in
  • OpenCL/CUDA/ISPC Same idea

  • Some abstractions disappear/not all
  • Computation is cheap, memory ins’t
  • Communication is slow or power hungry or both.

PyOpenCL

  • Context - bag around all the stuff
    • Intel GPU
    • Processor
    • AMD
  • lower level device buffer
2*a_dev #A device copy directly operated on
prg = cl.Program(ctx, """
__kernel void twice (__global float *a)
{
    int gid = get_global_id(0);
    a[gid] = 2*a[gid];
}
""").build()
prg.twice(queue,a.shape,None,a_dev.data)
result = a_dev.get()
  • Key Algorithm : Scan
    • np.cumsum - sum of all previous + current
    • Addition is commutative and associative
    • More work to get there faster!
  • loo.py
    • How computation works + How mapped to hardware
    • Math level stays same
    • counting flops

Homepage

Python for statistics

Jarrod Millman

10:15 - 11:05 AM
  • Statistical Computing
  • Permutation testing

  • Monte Carlo

Why Python?

  • General Purpose
  • Popular scientific applications
  • statistical applications

Stat 94 at Berkeley

Permutation Testing

  • randomization - nonparametric approach to statistical significance (evidence to reject) testing (Not many assumptions)

  • independent and identically-distributed random variables.

  • Informal hypothesis

  • Null hypothesis : No effect
  • Alternate : Mass increases

pip install permute

Python based science lab

Ajith Kumar

11:15 - 11:45 AM

Symengine and Sympy

Sumith

11:45 - 12:10
  • SymEngine : Core C++
  • Use wrappers to SymPy
  • Hot-swappable to SymPy

Cython - blend of Python and C ::

cdef int i,a,b;

Sandhi : Visual Programming Software

12:10 - 12:35
  • Replacement for Labview - Laboratory Virtual Instrument Engineering Workbench

Open Source optimization - COIN OR

Prof Ted Ralphs

02:40 - 03:10
  • Algebraic Modelling Languages

COIN OR suite