Author Archives: Julia Computing, Inc.

Julia Joins Upwork’s List of 20 Hottest Job Skills for Which Companies Are Hiring

Mountain View, CA – Upwork, the world’s largest marketplace for freelancers, reports that for the first time, Julia development is among the 20 hottest job skills for which companies are hiring. Julia’s debut on the quarterly Upwork index reflects year-over-year growth in demand for Julia developers of more than 170%.

This report has been covered by CNBC, AP, TechRepublic, Yahoo Finance, Inquirer and Business Wire.

Julia Computing CEO and Julia co-creator Viral Shah explains, “Since the launch of Julia 1.0 last year, demand for Julia programmers has exploded as employers seek to leverage Julia’s superior performance and ease of use. Today, Julia programmers work in hundreds of different fields, including artificial intelligence, machine learning, robotics, self-driving vehicles, 3D printing, finance, energy, insurance, bioinformatics, cryptography, macroeconomic modeling, cancer genomics, augmented reality, precision medicine and central banking.”

About Julia and Julia Computing

Julia is the fastest high performance open source computing language for data, analytics, algorithmic trading, machine learning, artificial intelligence, and other scientific and numeric computing applications. Julia solves the two language problem by combining the ease of use of Python and R with the speed of C++. Julia provides parallel computing capabilities out of the box and unlimited scalability with minimal effort. Julia has been downloaded more than 3.2 million times and is used at more than 1,500 universities. Julia co-creators are the winners of the 2019 James H. Wilkinson Prize for Numerical Software. Julia has run at petascale on 650,000 cores with 1.3 million threads to analyze over 56 terabytes of data using Cori, one of the ten largest and most powerful supercomputers in the world.

Julia Computing was founded in 2015 by all the creators of Julia to develop products and provide professional services to businesses and researchers using Julia.

Newsletter May 2019

Q: Is there an easy-to-find, easy-to-use searchable website where I can find a comprehensive inventory of Julia packages and Julia package documentation?

A: Pkg.julialang.org now includes improved Julia package documentation and search powered by JuliaTeam. You can now search Julia package names, tags, code and documentation to find the best Julia packages that fit your requirements.

Please contact us to learn how JuliaTeam can provide this same functionality within your enterprise development environment, including your own private Julia packages and more.

Stefan Karpinski explains in JuliaTeam
Vision
:

Documentation. Providing a single place to find all documentation for the Julia packages that you use. This service offers a single consistent place and way to host and publish package documentation. It also makes cross-linking docs between packages easy since they all live in the same place. Developers shouldn’t ever have to set up or think about the how of documentation hosting‚ they should just need to follow standard conventions for inline docs and then push their code. The docs service does the rest: cross-linked, searchable (see the next bullet point) docs are generated automatically.

Search. Currently search and discovery of packages is a serious pain point in the Julia ecosystem. JuliaTeam will provide integrated search of documentation and code for all packages. This will let you find the package that does what you need, whether it’s a public open source package or a private package that your organization uses‚ they’ll all be searchable in a single place.

Los Alamos National Laboratory Uses Julia to Predict Power Outages Caused by Extreme Events: Los Alamos National Laboratory used Julia to develop free, open source package – PowerModelsMLD.jl – that simulates the impact of disasters and predicts how the electric grid will be affected. This software can be used to allocate evacuation, rescue, relief and recovery resources.

Naval Postgraduate School Researchers Use Julia for Next Generation Climate Model: Naval Postgraduate School Professors Frank Giraldo, Lucas Wilcox and Jeremy Kozdon use Julia to create a new Earth Systems Model that is “poised to be the most accurate climate modeling system to date.‚”

Julia: The Programming Language Machine Learning Needs

The discussion around the future of machine learning continues to be atopic of interest at conferences and on Twitter. As workloads become diverse and complex, and generalize from the neural networks of today to Differentiable Programming, the question about programmability naturally arises. We have published several blogs on the topic (What is Differentiable Programming and Reinforcement Learning vs. Differentiable Programming).

Facebook AI’s Soumith Chintala has this to say about Julia:

JuliaAcademy: Julia Computing’s training offerings continue to expand. JuliaAcademy is the Julia Computing training platform for 3 types of learning: self-directed, online instructor-led and in-person onsite training.

Course Title and Description Date (11 am – 3 pm EDT) Cost Register
Introduction to Machine Learning and Artificial Intelligence in Julia May 2-3 $500 Register
Parallel Computing in Julia May 8-9 $500 Register

JuliaAcademy courses include: Intro to Julia, Machine Learning and Artificial Intelligence in Julia, Parallel Computing in Julia, Deep Learning with Flux, Optimization with JuMP and Machine Learning with Knet.

JuliaAcademy provides:

  1. Self-directed training – all online, learn at your own pace

  2. Instructor-led online training – live two-day courses taught by Julia Computing instructors

  3. In-person training – contact us at info@juliacomputing.com to schedule customized in-person training for your organization

Register now for instructor-led online courses. All courses include 8 hours of instruction: 4 hours per day for two consecutive days. Currently scheduled courses are from 11 am – 3 pm Eastern Daylight Time (US).

Julia & Flux – Modernizing Machine Learning: Computação Brasil published Julia e Flux: Modernizando o Aprendizado de Máquina by Dhairya Gandhi, Mike Innes, Elliot Saba, Keno Fischer and Viral Shah.

Algorithms for Optimization (Using Julia): Mykel Kochenderfer and Tim Wheeler have published Algorithms for Optimization which uses Julia to provide a comprehensive introduction to optimization with a focus on practical algorithms.

Julia Programming for Operations Research: Changhyun Kwon from the University of South Florida has published Julia Programming for Operations Research.

JuliaCon 2019: JuliaCon 2019 will be
held July 22-26 at the University of Maryland, Baltimore. Early Bird
Ticket Sales
end May 5.

JuliaCon is looking for sponsors
and university partners in diversity. Sponsorship is available at
several levels and benefits include prominent mention and logo placement
at JuliaCon and in JuliaCon conference materials and Website, an
opportunity to present to JuliaCon participants, presentation space
during the conference and registration for JuliaCon attendees. Past
JuliaCon sponsors include the Alfred P. Sloan Foundation, Microsoft,
Maven, Invenia, Julia Computing, Capital One, Gordon and Betty Moore
Foundation, Gambit Research, Tangent Works, Amazon, Alan Turing
Institute, Jeffrey Sarnoff, EVN and Conning.

Julia and Julia Computing in the News

  • Analytics
    India
    :
    10 Fastest Growing Programming Languages That Employers Demand In
    2019

  • Analytics
    India
    :
    Annual Survey On Data Science Recruitment In India: 2019

  • Apple: What Are the Biggest Software Challenges in Machine Learning?

  • Computação Brasil: Julia e Flux: Modernizando o Aprendizado de Máquina

  • Computing: The Top 10 Most In-Demand IT Skills for 2019

  • DevClass: Julia 101 – The Upstart Language with a Lot to Offer

  • Edgy: Why Julia is the Programming Language set to Dominate our Future

  • EFinancialCareers: Should You Learn to Program in Julia to Get Ahead in Finance?

  • Forbes: How Are Computer Programming Languages Created?

  • Forbes: What Will Machine Learning Look Like In Twenty Years?

  • HPCWire: Julia and NASA Help the Nature Conservancy Save the Planet with Circuitscape

  • LeiPhone: 芯片行业30年资深人士:AI为何是高性能计算史上 “最大的变革推动者”

  • MoneyControl: Algo Trading: Here Are Five Steps to Set Up Your Own Algorithm

  • ODSC:
    Reinforcement Learning vs. Differentiable Programming

  • PC Revue: Päť Predikcií: Takto Bude Vyzerať Strojové Učenie o 20 Rokov

  • Sohu:十大应用在数学的计算机语言

Julia Blog Posts

Upcoming Julia Events

Recent Julia Events

Julia Meetup Groups: There are 35 Julia Meetup groups worldwide with 8,092 members. If there’s a Julia Meetup group in your area, we hope you will consider joining, participating and helping to organize events. If there isn’t, we hope you will consider starting one.

Julia Jobs, Fellowships and Internships

Do you work at or know of an organization looking to hire Julia
programmers as staff, research fellows or interns? Would your employer
be interested in hiring interns to work on open source packages that are
useful to their business? Help us connect members of our community to
great opportunities by sending us an
email, and we’ll get the word out.

There are more than 300 Julia jobs currently listed on
Indeed.com, including jobs at Accenture,
Airbus, Amazon, AstraZeneca, Barnes & Noble, BlackRock, Capital One,
Charles River Analytics, Citigroup, Comcast, Cooper Tire & Rubber,
Disney, Facebook, Gallup, Genentech, General Electric, Google, Huawei,
Johnson & Johnson, Match, McKinsey, NBCUniversal, Nielsen, OKCupid,
Oracle, Pandora, Peapod, Pfizer, Raytheon, Zillow, Brown, Emory,
Harvard, Johns Hopkins, Massachusetts General Hospital, Penn State, UC
Davis, University of Chicago, University of Virginia, Argonne National
Laboratory, Lawrence Berkeley National Laboratory, Los Alamos National
Laboratory, National Renewable Energy Laboratory, Oak Ridge National
Laboratory, State of Wisconsin and many more.

Contact Us: Please contact us if
you wish to:

  • Purchase or obtain license information for Julia products such as
    JuliaAcademy, JuliaTeam, or JuliaPro

  • Obtain pricing for Julia consulting projects for your organization

  • Schedule Julia training for your organization

  • Share information about exciting new Julia case studies or use cases

  • Spread the word about an upcoming conference, workshop, training,
    hackathon, meetup, talk or presentation involving Julia

  • Partner with Julia Computing to organize a Julia meetup, conference,
    workshop, training, hackathon, talk or presentation involving Julia

  • Submit a Julia internship, fellowship or job posting

About Julia and Julia Computing

Julia is the fastest high performance open
source computing language for data, analytics, algorithmic trading,
machine learning, artificial intelligence, and other scientific and
numeric computing applications. Julia solves the two language problem by
combining the ease of use of Python and R with the speed of C++. Julia
provides parallel computing capabilities out of the box and unlimited
scalability with minimal effort. Julia has been downloaded more than 8.4
million times and is used at more than 1,500 universities. Julia
co-creators are the winners of the 2019 James H. Wilkinson Prize for
Numerical Software. Julia has run at
petascale
on
650,000 cores with 1.3 million threads to analyze over 56 terabytes of
data using Cori, one of the ten largest and most powerful supercomputers
in the world.

Julia Computing was founded in 2015
by all the creators of Julia to develop products and provide
professional services to businesses and researchers using Julia.

Debuggers and Operating Systems (Keno Fischer Quora Session)

Keno Fischer, Julia Computing Co-Founder and Chief Technology Officer (Tools) participated in a Quora Session March 18-23. One of Keno’s responses was also featured in Forbes.

How could the functionality of compilers, debuggers, and operating systems be improved?

I will leave out compilers, because I’ve spent some time talking about them in other answers (with respect to machine learning in particular), but let me spend some time on the other two.

I think debugging is probably the most under-appreciated and under-developed part of systems software development, despite being one of the most important. Debuggers are one of my favorite topics to gripe about, so I will list just a few complaints.

  1. The quality of debug information is horrible , particularly for optimized code. This is a result of debug info being considered a “best effort” kind of thing, where “best” in this case means “the absolute minimum we can get away with, without inciting a revolt.” It doesn’t have to be this way. These days, we generally have the compiler and the original source code that produced the binary available. Even if it were prohibitive to store the debug information ahead of time, we could easily recompute it by rerunning the compiler (computers are deterministic machines after all). Instead we’re left to try to reconstruct what the program was doing by reading assembly and poking at memory. Like a detective figuring out what’s going on in the kitchen by positioning themselves in the sewer.

  2. The debugging experience is horrible. Suppose I’ve just spent twenty minutes reproducing a bug and I’m just about to find out what went wrong in the debugger. Then I fat finger the debugger command and oops all my state is gone and I get to spend another twenty minutes (even worse when you used the right command, but the debugger – for one reason or another – misses the correct target and just keeps running the program anyway). This might seem like something fundamental, after all time runs forward, but it actually isn’t. Time travel is quite real in the debugging world and it’s amazing. The rr project (https://github.com/mozilla/rr) does this for arbitrary Linux programs and there are similar approaches in other contexts. It’s probably the single most powerful debugging technology I know, but nobody invests in it.

  3. Debuggers don’t make use of compute power. My regular development machine has 40 cores, but still the debugger needs me to make all the decisions. Ideally I’d just point at some memory or registers, or variable values, tell the debugger they look wrong and have it go off and do a bunch of simulations, or SMT solves or whatever to figure out exactly what conditions would cause such a thing to happen. Right now I basically do that manually with memory watchpoints and careful examination of the code. There’s a huge fertile research field here, particularly when combined with something like rr.

I’m less actively disappointed in operating systems, but I do think there is some very interesting potential avenues for next generation operating systems.

  1. Many-device applications. To some extent we have this with the Web, but to me there seems to be very little reason that each of my devices are a separate execution domain. I should be able start on my computer at home, open an application, continue where I left off on my phone during my commute and then arrive at the office, plug my phone into my workstation and use the nearby TV as the monitor (with rendering done on the TV to keep down latency). All the while, I want a unified file system with all my files, state synchronized between devices (e.g. the chat message I half typed out), and ideally I’d like to not rely on the cloud for any of this to work. What would the right operating system and APIs for a system that allowed this look like?

  2. Security. This has been a holy grail for a long time, but it does seem like we’re approaching a world where it is feasible to write real world operating systems in a formally verified (or at least a memory safe language). The number of security vulnerabilities in mainstream operating systems is quite frankly horrifying for a system part of whose primary job it is to provide security isolation between processes.

  3. Syscalls without domain transitions. Every time we ask the operating system to perform some work for a user space process, we pay significant overhead just to transition from user space to kernel space. Can we come up with better alternatives, either through more fine grained security domains in hardware (the Mill people have some interesting ideas here) or through software techniques (e.g. by distributing applications as some sort of intermediate representation and validating or enforcing the requisite security properties).

  4. Support for reversible debugging. And there you thought we were done with debuggers 😉 As I said in the debugging list, rr currently works only on Linux (and Intel hardware), but that also just barely. Linux could do a lot better at supporting tools like rr and other operating systems could make it possible at all. It’s hard to overstate the utility.