JuliaCon2016: Recap of Sessions and Discussions

Table of Contents

JuliaCon2016

http://juliacon.org/schedule.html

"The third Julia conference will take place June 21st-25th, 2016 at the Massachusetts Institute of Technology in Cambridge, Massachusetts. "

Actions

Wednesday Sessions

Fortress Features and Lessons Learned, Guy Steele

https://en.wikipedia.org/wiki/Fortress_(programming_language)

Covered four of the 20 crazy programming ideas implemented in Forturs.

Exmaple: histogramWater

For an array of integers create a histogram, then let it rain on the histogram and find the volume of water.

  • sum the volume of water for each item
  • each item looks left and right to find the max

Features

  • libraries
  • symmetry
  • whitespace
  • preserve whiteboarded mathematics
  • requires understanding the precedence of operators of all operators
  • clear point: don't force yourself to have a parser define precendence built into a langage that would not be used consistently: use parenthesis and don't make it Facebook link-bait
  • general big sigma and comprehension
  • generators and reductions filter through the type system
  • overloading with types- trait Boolean extends { Any } excludes { String }

Gallium, Keno Fischer

Example: 1+2.0

  using Galllium
  @enter 1.0+2
  • Reviewed: s, bt, edit, nc, si
  • @codellvm @codenative

Example: plotting

Example: gcd

  breakpoint(gcd)
  methods(gcd)
  • Any of the calls to the types supported by calls
  • macro expansion
  • new error message from repl
  • generator functions

Juno, a Julia IDE

http://junolab.org/

  • workspace available with 0.5
  • based off of Gallium changes
  • code vs. exploration wih Notebook

Julia for data science: current progress and future plans, Simon Byrne

  • dataframes and integration with Python, R, Spark, GraphLab
  • allocation of memory between sources
  • switching to maps (without union operations)
  • compound operations (filter then average) are greedy

TypedTables: type-safe data containers, Andy Ferris

  • DataFrames
  • TypedTables
  • GeneratedTypes

Music Information Retrieval in Julia, Jong Wook Kim

Using Julia as a Quick and Dirty Code Generator, Arch D. Robison

Automatic differentiation techniques used in JuMP, Miles Lubin

https://github.com/JuliaDiff/ReverseDiffSource.jl

  • nodes in memory can be a performance constraint
  • billions of long-lived objects that would need GCC
  • single vector of immutable objects
  • register functions

http://arxiv.org/abs/1508.01982

ForwardDiff.jl: Fast Derivatives Made Easy, Jarrett Revels

https://github.com/JuliaDiff/ForwardDiff.jl

Example: you inherit a function where you can't symbolically

  • automatic differentation (AD)

    df(x)/dx = lim h→0, f(x+h)−f(x)/ h

  • central difference
lim h -> 0; f'(x) = f(x) + f(x + h) / h
  • complex step method
  • dual number method

Profiling:

f(x) = e^x / sqrt(sin^3(x) + cos^3(x))
  • Jacobians: J(g)(f)
  • Dual numbers: less, sin, * are implementation of chain rule and product rule

Test:

  function cumprod

  end
  • test the function: cumprod
cumprod(A[, dim])
Cumulative product along a dimension dim (defaults to 1). See also
cumprod!() to use a preallocated output array, both for performance and
to control the precision of the output (e.g. to avoid overflow).


  • write the Jacobian
  • create test of the input size
  • provide the timing
  • graph the error rates

Enabling reverse communication solvers and embedding Julia, Andy Greenwell

Patterns for building web apps with Escher.jl, Shashi Gowda

Unums 2.0: Implementing projective intervals and sets in Julia, Jason Merrill

https://www.crcpress.com/The-End-of-Error-Unum-Computing/Gustafson/p/book/9781482239867

  • second version of an idea that's under active development
  • good ideas that show issue
  • ranges
  • open and closed sets
  • issues with 0 and -0

Universal numbers

  • Superset of IEEE types,both 754 and 1788
  • Integers->floats->unums
  • No rounding, no overflow to ∞, no underflow to zero
  • Projective infinity implies closed interval on interval arithmetic

Tests

  var g = function(x) { return 1 / (x + 3 - x - 3); }

The design and use of extended precision floats, Jeffrey Sarnoff

  • from 1986: always double the bit width
  • float64 calculation with the LHC they would use double-doubles
  • example: precision on non-precise items: lasers cutting tumors don't have the level of precision
  • time is generally a better example
  • risk is also not that precise: individual or organizational risk thresholds are likely a single order
  • Q: continued taylo expansions

https://github.com/fredrik-johansson/arb

Bounded Integers, David Hossack

  • standard examples of bit shifting and wrapping

Friday Sessions

Quantitative Macroeconomics, Tom Sargent

DSGE.jl – Using Julia for Economic Modeling at the Federal Reserve Bank of New York, Erica Moszkowski

A functional approach to High Performance Computing, Erik Schnetter

Network Algorithms Research in Julia, Huda Nassar

Swifter.jl : Scripting, REPL for iOS App development, WooKyoung Noh

PETSc.jl: Interfacing an enormous C sparse-matrix library, Jared Crean

  • partial differential equations
  • distributed memory vectors
  • sparse matrices
  • starts with Clang.jl: Petsc headers to Julia

jInv - A Flexible Julia Package for Parallel PDE Constrained Optimization, Lars Ruthotto

Accelerating Julia Kernels with ArrayFire, Ranjan Anantharaman

Author: Jason Walsh

j@wal.sh

Last Updated: 2024-08-02 10:10:57