<div dir="ltr"><div><div style="margin:1em 0px 0px;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box;line-height:18px;color:rgb(0,0,0);font-family:"Helvetica Neue",Arial,"Liberation Sans",FreeSans,sans-serif"><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">We have an open<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">postdoc</span><span class="gmail-Apple-converted-space"> </span>position in deep probabilistic programming (DPP) at DIKU, University of Copenhagen, with a focus on programming language technology. The position is for one year and can be extended to two years. It is open immediately.</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">To inquire about the position or apply for it, please send your CV, your<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">research</span><span class="gmail-Apple-converted-space"> </span>interests, how you believe you can contribute to and benefit from the<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">research</span><span class="gmail-Apple-converted-space"> </span>program below, and one relevant<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">research</span><span class="gmail-Apple-converted-space"> </span>paper you have authored to Fritz Henglein, <a href="mailto:henglein@diku.dk" target="_blank" style="color:rgb(51,102,153);margin:0px;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box;text-decoration:none">henglein@diku.dk</a>. </p></div><div style="margin:1em 0px 0px;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box;line-height:18px;color:rgb(0,0,0);font-family:"Helvetica Neue",Arial,"Liberation Sans",FreeSans,sans-serif"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box"><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">About DPP</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">Deep probabilistic programming combines programming with probability distributions and parameters that can be optimized to match observed outcomes by automatic differentiation (AD); it is essentially Bayesian inference plus deep learning in an expressive programming language.  </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">About AD</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">AD is of particular interest to us in this project. We are exploring DSL-based linear operator representations for derivatives that share the benefits of matrices (expressive algebra, easy parallelism-preserving adjoints for running ‘in reverse’, hardware-supported high-performance execution on GPUs, etc),  but avoid their prohibitive storage and execution costs at high dimension, without using so-called ‘jvp’ and ‘vjp’ representations of derivatives expressed in a general-purpose programming language, which is inherently tricky to analyze and optimize.  This is where we’ll need your help: Our hypothesis is that AD by aggressive almost-symbolic differentiation, clever symbolic representation (e.g. tensor product representation for low-rank matrices) of derivatives, followed by parallelism-preserving transformation and optimization, and eventual compilation to a functional high-performance array programming language such as Futhark can provide execution performance advantages in a suitably constructed DSL. </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">About PP </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">Subsequently we’d like to add probability distributions/random variables as data types with exploitable algebraic properties to the DSL to implement efficient (Hamiltonian and Newtonian) probabilistic inference techniques that minimize the need for sampling and maximize computational performance.   </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">About applications </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">The present project is driven by multiple applications in protein structure prediction, where computational efficiency is (still) a major bottleneck.  This is the targeted problem domain for this<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">postdoc</span><span class="gmail-Apple-converted-space"> </span>position.   The overall multilinear algebraic programming approach has broader applications, though, ranging from database query processing (‘vector spaces’ — actually modules — over Z as generalized relations) via machine learning (vector spaces over R) to quantum computation (vector spaces over C).</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">Required background </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">Ideally you should have both </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box"></p><ul style="margin:0.5em 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box;list-style:outside"><li style="margin:0px 0px 0px 1.75em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">a good mathematical grounding, specifically in (multi)linear algebra and in common vector spaces such as Hilbert spaces, and ideally also in probability theory for the probabilistic programming aspects, and </li><li style="margin:0px 0px 0px 1.75em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">practical mastery of functional programming language technology for generating high-performance code.</li></ul><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box"></p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">The reason is that the former is not a goal by itself —we aim for very high performance in practice, the generated code really has to run very fast — and the latter by itself will make the optimization ideas seem mysterious since they exploit the former in nonobvious ways. </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">No particular background in bioinformatics, proteins or such is required.  If you have some, wonderful; but we have plenty of expertise in the team that you can draw on.</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box"></p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">About employment terms</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box"></p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">The position can be started as soon as the paperwork is done after an employment offer has been made and accepted, which may be weeks to months, depending on your citizenship.  The salary is according to the standard Danish union contract for academics.  Including mandatory contribution to your own pension account, it can be expected to be between DKK 40,000 and DKK 50,000 /month before income taxes.  The actual amount depends on formal qualifications and seniority.  </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">About the project team, DIKU, UCPH and Copenhagen</p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">The project, deep probabilistic programming for protein structure prediction, is funded by the Danish<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">Research</span><span class="gmail-Apple-converted-space"> </span>Council and hosted by the Programming Language and Theory of Computation (PLTC) section at the Department of Computer Science (DIKU) at the University of Copenhagen (UCPH).  It is led by Thomas Hamelryck (Department of Biology and DIKU) and Fritz Henglein (DIKU) and is performed in collaboration with and in close proximity to the Futhark high-performance functional programming language<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">research</span><span class="gmail-Apple-converted-space"> </span>group.  </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">DIKU is located on the North Campus of UCPH, next to the largest park in Copenhagen.  </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">Copenhagen is routinely ranked as one of the most livable cities in the world.  </p><p style="margin:0px 0px 1em;padding:0px;border:0px;outline:0px;font-size:14.4px;vertical-align:baseline;background-image:none;background-position:0%;background-size:auto;background-repeat:repeat;background-origin:padding-box;background-clip:border-box">You’ll have the opportunity to gather teaching qualifications during the second<span class="gmail-Apple-converted-space"> </span><span class="gmail-il">postdoc</span><span class="gmail-Apple-converted-space"> </span>year and UCPH is usually ranked as one of the better or even best universities in Europe, both of which can contribute effectively to your academic career. </p></div></div></div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Fritz Henglein<div><a href="mailto:fritz@henglein.com" target="_blank">fritz@henglein.com</a> (private, fastest), <a href="mailto:henglein@diku.dk" target="_blank">henglein@diku.dk</a> (office, DIKU)</div><div>+45-30589576</div></div></div></div></div>