{Julia} Studio – An integrated development environment for the Julia Language – About Me



{Julia} Studio – An integrated development environment for the Julia Language – About Me

1 1


Introducing-Julia

A talk from the 2012 Informs Conference

On Github forio / Introducing-Julia

{Julia} Studio

An integrated development environment for the Julia Language

About Me

Adam Savitzky is the product manager for {Julia} Studio at Forio Online Simulations.

About Julia

Julia is an open source programming language for technical computing. Julia has a powerful syntax for math and matrices, with the speed of C++

About Forio

Forio offers a platform for building and sharing simulations online. Forio has worked with major organizations to develop simulations and predictive analytics tools for higher education, public policy, corporate training, and business analytics.

Why Julia?

We are power Matlab users. Some of us are Lisp hackers. Some are Pythonistas, others Rubyists, still others Perl hackers... We’ve generated more R plots than any sane person should. We are greedy: we want more.... About two and a half years ago, we set out to create the language of our greed — the language we’ve created is called Julia.

- Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman Why We Created Julia, Feb. 2012

Hyper Speed

Approaches the performance of C++ on most benchmarks

Julia12b1d5a7 Python2.7.3 MatlabR2011a R2.14.2 fib 1.97 46.03 1587.03 275.63 parse_int 1.72 25.29 846.67 353.48 quicksort 1.37 69.20 133.46 708.76 mandel 1.45 34.88 74.61 184.71 pi_sum 1.00 33.64 1.46 253.45 rand_mat_stat 1.95 29.01 7.71 12.66 rand_mat_mul 1.00 1.75 1.08 9.58

Poweful Synatx

Write elegent mathematical programs in a fraction of the time without sacrificing performance. Julia supports arrays as first class objects, so you can do matrix manipulation in one line of code while approaching the speed of C++.

Parallel Computing

Have a really big problem? Julia is purpose-built to support parallel computing. Spin up the EC2 instances you need and instruct Julia to use more processers. It's as simple as that.

Open Source

Julia is open source. If something is missing, you can contribute to the language.

{Julia} Studio

{Julia} Studio is the first and only IDE for Julia. The best way to get started with Julia is to download and install {Julia} Studio: forio.com/julia.

Example Julia Code

Let's try linear regression.

The Data

Samples of gasoline, where we analyze the compent makeup from three different components, and compare it to octane rating

Component 1 (%) Component 2 (%) Component 3 (%) Octane Rating * data taken from Helmuth Spaeth, Mathematical Algorithms for Linear Regression. Academic Press, 1991. 53.33 1.72 54 92.19 59.13 1.2 53 92.74 57.39 1.42 55 91.88 56.43 1.78 55 92.8

We want to predict octane rating based on component makeup

octane=β1x1+β2x2+β3x3+ϵ

Or, more generally:

y=Xβ+ϵ

Where:

y=(y1y2⋮yn),X=(xT1xT2⋮xTn)=(x11…x1px21…x2p⋮⋱⋮xn1…xnp),β=(β1⋮βp),ϵ=(ϵ1ϵ2⋮ϵn)

The code:

data = csvread("gasoline.csv")
X = [data[:,2] data[:,3] data[:,4]]
y = data[:,6]
println(linreg(X, y))


The output:

Error (ϵ) Component 1 (^β1) Component 2 (^β2) Component 3 (^β3) 102.44000 -0.09526 -0.14831 -0.08314

Now for a demo!

We're going to save the Apollo 13 astronauts!

Roadmap

  • Graphics
  • Linux version
  • Debugging
  • Code completion

Questions?

Download the slides: http://goo.gl/2kNEI