381 stories




More cat adventures.

Read the whole story
1 day ago
Share this story

Announcing OpenFermion: The Open Source Chemistry Package for Quantum Computers


“The underlying physical laws necessary for the mathematical theory of a large part of physics and the whole of chemistry are thus completely known, and the difficulty is only that the exact application of these laws leads to equations much too complicated to be soluble.”
-Paul Dirac, Quantum Mechanics of Many-Electron Systems (1929)

In this passage, physicist Paul Dirac laments that while quantum mechanics accurately models all of chemistry, exactly simulating the associated equations appears intractably complicated. Not until 1982 would Richard Feynman suggest that instead of surrendering to the complexity of quantum mechanics, we might harness it as a computational resource. Hence, the original motivation for quantum computing: by operating a computer according to the laws of quantum mechanics, one could efficiently unravel exact simulations of nature. Such simulations could lead to breakthroughs in areas such as photovoltaics, batteries, new materials, pharmaceuticals and superconductivity. And while we do not yet have a quantum computer large enough to solve classically intractable problems in these areas, rapid progress is being made. Last year, Google published this paper detailing the first quantum computation of a molecule using a superconducting qubit quantum computer. Building on that work, the quantum computing group at IBM scaled the experiment to larger molecules, which made the cover of Nature last month.

Today, we announce the release of OpenFermion, the first open source platform for translating problems in chemistry and materials science into quantum circuits that can be executed on existing platforms. OpenFermion is a library for simulating the systems of interacting electrons (fermions) which give rise to the properties of matter. Prior to OpenFermion, quantum algorithm developers would need to learn a significant amount of chemistry and write a large amount of code hacking apart other codes to put together even the most basic quantum simulations. While the project began at Google, collaborators at ETH Zurich, Lawrence Berkeley National Labs, University of Michigan, Harvard University, Oxford University, Dartmouth College, Rigetti Computing and NASA all contributed to alpha releases. You can learn more details about this release in our paper, OpenFermion: The Electronic Structure Package for Quantum Computers.

One way to think of OpenFermion is as a tool for generating and compiling physics equations which describe chemical and material systems into representations which can be interpreted by a quantum computer1. The most effective quantum algorithms for these problems build upon and extend the power of classical quantum chemistry packages used and developed by research chemists across government, industry and academia. Accordingly, we are also releasing OpenFermion-Psi4 and OpenFermion-PySCF which are plugins for using OpenFermion in conjunction with the classical electronic structure packages Psi4 and PySCF.

The core OpenFermion library is designed in a quantum programming framework agnostic way to ensure compatibility with various platforms being developed by the community. This allows OpenFermion to support external packages which compile quantum assembly language specifications for diverse hardware platforms. We hope this decision will help establish OpenFermion as a community standard for putting quantum chemistry on quantum computers. To see how OpenFermion is used with diverse quantum programming frameworks, take a look at OpenFermion-ProjectQ and Forest-OpenFermion - plugins which link OpenFermion to the externally developed circuit simulation and compilation platforms known as ProjectQ and Forest.

The following workflow describes how a quantum chemist might use OpenFermion in order to simulate the energy surface of a molecule (for instance, by preparing the sort of quantum computation we described in our past blog post):
  1. The researcher initializes an OpenFermion calculation with specification of:
    • An input file specifying the coordinates of the nuclei in the molecule.
    • The basis set (e.g. cc-pVTZ) that should be used to discretize the molecule.
    • The charge and spin multiplicity (if known) of the system.
  1. The researcher uses the OpenFermion-Psi4 plugin or the OpenFermion-PySCF plugin to perform scalable classical computations which are used to optimally stage the quantum computation. For instance, one might perform a classical Hartree-Fock calculation to choose a good initial state for the quantum simulation.
  2. The researcher then specifies which electrons are most interesting to study on a quantum computer (known as an active space) and asks OpenFermion to map the equations for those electrons to a representation suitable for quantum bits, using one of the available procedures in OpenFermion, e.g. the Bravyi-Kitaev transformation.
  3. The researcher selects a quantum algorithm to solve for the properties of interest and uses a quantum compilation framework such as OpenFermion-ProjectQ to output the quantum circuit in assembly language which can be run on a quantum computer. If the researcher has access to a quantum computer, they then execute the experiment.
A few examples of what one might do with OpenFermion are demonstrated in ipython notebooks here, here and here. While quantum simulation is widely recognized as one of the most important applications of quantum computing in the near term, very few quantum computer scientists know quantum chemistry and even fewer chemists know quantum computing. Our hope is that OpenFermion will help to close the gap between these communities and bring the power of quantum computing to chemists and material scientists. If you’re interested, please checkout our GitHub repository - pull requests welcome!

1 If we may be allowed one sentence for the experts: the primary function of OpenFermion is to encode the electronic structure problem in second quantization defined by various basis sets and active spaces and then to transform those operators into spin Hamiltonians using various isomorphisms between qubit and fermion algebras.

Read the whole story
28 days ago
Share this story

the internet vs music, 2017

1 Comment

How do you release music on the internet in 2017?  We’ve got at least:

  • Bandcamp
  • Spotify / Apple Music / Tidal
  • SoundCloud
  • iTunes
  • Resonate.io
  • Mixcloud
  • YouTube
  • Patreon
  • DropBox
  • Self-hosting
  • ?????

Now let’s look at the tape:

Bandcamp is probably my favorite, but it lacks a bit of jazz, and is more of a store than a place where things can gather momentum.  

Spotify and the streaming services are not really great for bootleg stuff or for things aimed at DJs. (Disclosure:  I’m a Spotify employee, and it’s not perfect, but I don’t think it is bad.)

SoundCloud is probably dying.

iTunes is boring as six horses, and most people don’t buy music.

Resonate is adorable, but is even more niche than Bandcamp.

Mixcloud is designed for radio sets (and has iffffyyy design).

 YouTube makes you no money.  

Patreon doesn’t work for shy people, and has no hosting.

Dropbox and OneDrive and Google Drive are pedestrian.

Most people can’t self host.

So is the answer, as ever, for artists, to do everything?  Cut your 200 vinyl or cassettes, push it to Spotify and everywhere else with DistroKid, put a video on YouTube, link it all to your Patreon on Twitter / Instagram / Snapchat?  

It probably is, really.  As someone who’s been around this field for a minute, it is sort of frustrating that there is no easy answer for me wanting to upload a few edits where they might get a tiny amount of attention organically.  (I am, of course, probably just a lazy old man.)

But along these lines, what’s an instagram record label?  What’s a Snapchat record label?  Is AR / VR stuff going to do anything?  What about Twitch?Will there be a boom in compact-disc (or minidisc!) nostalgia soon?  What about the newsletter trend?  The blockchain?  What’s next?

Read the whole story
41 days ago
Share this story

Saturday Morning Breakfast Cereal - Noah's Ark

2 Comments and 11 Shares

Click here to go see the bonus panel!

I mean, the rainbow thing is just a phenomenon due to refraction. How self-centered do you have to be to think it's just about you?

New comic!
Today's News:

Geeks! Just about 10 days to get in your submissions for BAHFest Seattle and BAHFest San Francisco. We're going to have some really awesome geeks on stage, so please submit soon for your chance to be part of things!

Read the whole story
90 days ago
95 days ago
Share this story
1 public comment
84 days ago
earth dimension c-138

hobbes, Morgan Stanley OSS

1 Comment and 2 Shares

For the last few years, we at Morgan Stanley have been developing hobbes -- a programming language, JIT compiler, and database system. It has developed into a critical piece of infrastructure in our low-latency, high-volume trading applications, and we have decided to release the source code to the public on github (currently can be built for recent Linux and macOS platforms):


The database system is a lightweight (self-contained, header-only) library used by applications to efficiently log structured (binary) data over shared memory to minimize application latency and reflect application type structure as accurately as possible in log files. We use this to record a very detailed image of application state over time, which we analyze/query out of band.

The JIT compiler can be used embedded in another application (e.g. to "hot patch" an application with very efficient, precisely typed intercepts) or as a standalone interactive interpreter (e.g.: to monitor and query application log data).

The programming language is a variant of Haskell (HM type inference, algebraic data types, qualified types / type classes) with some adjustments to help reduce boilerplate and derive very efficient machine code. For example, we use "structural" record, variant, and (iso-)recursive types to represent data as it's naturally represented in applications and can be deconstructed generically at compile time (e.g. a record can be printed if its first field can be printed and its rest can be printed, a variant can be printed if its first case can be printed and its rest cases can be printed, a recursive type can be printed if its one-step unrolling can be printed, etc).

We are actively using this on major projects, we will continue to develop this github project as we need new features, and we are interested in engaging others outside of the firm for their thoughts, feedback, and hopefully pull requests. :)

Read the whole story
130 days ago
very cool
Share this story

Simple Voltage Sequencer for Moog Mother-32

1 Share

A simple voltage sequence for Moog Mother-32 and other devices. The cost is very low, and the concept is somewhat expandable. No additional power supply is used. Instead, the VC Mix Output is used to power the sequencing circuit, consisting of a 40106 oscillator, a 4040 counter and a 4051 multiplexer.

Read the whole story
138 days ago
Share this story
Next Page of Stories