Anil Madhavapeddy

Last updated

Anil Madhavapeddy
Anil Madhavapeddy in Jan 2019.jpg
Anil Madhavapeddy
CitizenshipIrish
Alma mater
Scientific career
Fields
Institutions University of Cambridge
Docker
Thesis Creating high-performance, statically type-safe network applications  (2006)
Doctoral advisor Andy Hopper and David Greaves
Website https://www.cst.cam.ac.uk/people/avsm2

Anil Madhavapeddy is the Professor of Planetary Computing at the Department of Computer Science and Technology in the University of Cambridge, a Fellow of Pembroke College, Cambridge, and a J M Keynes Fellow. [1] He is the Founding Director of the Cambridge Centre for Carbon Credits, [2] aiming to distribute funds raised through the sale of carbon credits in a verifiable manner. [3]

Contents

Education

Madhavapeddy graduated from Imperial College London in 1999,[ citation needed ] and obtained his PhD in Computer Science from the University of Cambridge in 2006 for research on programming languages and operating systems supervised by Andy Hopper and David Greaves. [4]

Research and Teaching

Anil is the author of Real World OCaml, the second edition of which was published in Oct 2022 by Cambridge University Press, [5] with an earlier edition in 2013 by O'Reilly Media. [6] RWO has been used as a text in computer science courses such as Princeton’s COS326, [7] Cornell’s CS6110 [8] and UPenn’s CIS 120. [9] At Cambridge, Anil teaches the Foundations of Computer Science course [10] in the Computer Science Tripos which introduces functional programming. Past lecturers of this course include Lawrence Paulson, Alan Mycroft and Amanda Prorok.

Madhavapeddy primarily researches programming languages and operating systems. He is one of the main creators of unikernel library operating systems, [11] [12] [13] and has researched parallelism [14] and effect systems [15] for functional languages such as OCaml.

Madhavapeddy's latest project is a collaboration with Srinivasan Keshav and Andrew Balmford on verifiable carbon credits for nature-based solutions, [16] which has been seen as an alternative to Cryptocurrency tokens [17]

Industry

Madhavapeddy has made substantial contributions to open source software such as MirageOS, [18] [19] [20] OCaml, [21] Docker, Xen [22] and OpenBSD. [23] [24] He is currently a Council Member at the Tezos Foundation [25] [26] and the advisory board of OpenUK. [27] He co-founded Unikernel [28] Systems in 2015, which was acquired by Docker in 2016 [29] [30] where he served as a Docker maintainer, introducing technologies such as HyperKit, [31] VPNKit [32] and DataKit [33] that made Docker for Desktop possible. [34] [35]

Madhavapeddy has been a senior maintainer of OCaml since 2011, where he helped develop the OCaml Package Manager, [36] the tooling ecosystem, [37] [38] as well as support for multicore parallelism and effect handlers in OCaml 5.0. [39] He has published over 150 software libraries for OCaml. [40]

He co-founded High Energy Magic Ltd in 2003 [41] with Eben Upton and others, which was an early implementation of interactive barcodes in camera-phones [42] [43] and later commercialised as ShotCodes.

Madhavapeddy also served on the core team at the Horde project from 1999 until 2008, [44] where he helped develop the IMP webmail client and the Chora CVS viewer. [45]

He worked on the Mars Polar Lander ground data systems in 1998 [46] [47] and subsequently at NetApp to deploy early content delivery networks using NetCache [48]

Related Research Articles

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.

The ACM A. M. Turing Award is an annual prize given by the Association for Computing Machinery (ACM) for contributions of lasting and major technical importance to computer science. It is generally recognized as the highest distinction in computer science and is colloquially known as or often referred to as the "Nobel Prize of Computing".

OCaml is a general-purpose, high-level, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features. OCaml was created in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez, and others.

<span class="mw-page-title-main">Robin Milner</span> British computer scientist (1934–2010)

Arthur John Robin Gorell Milner was a British computer scientist, and a Turing Award winner.

<span class="mw-page-title-main">MIT Computer Science and Artificial Intelligence Laboratory</span> CS and AI Laboratory at MIT (formed by merger in 2003)

Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Laboratory. Housed within the Ray and Maria Stata Center, CSAIL is the largest on-campus laboratory as measured by research scope and membership. It is part of the Schwarzman College of Computing but is also overseen by the MIT Vice President of Research.

In computing, an effect system is a formal system that describes the computational effects of computer programs, such as side effects. An effect system can be used to provide a compile-time check of the possible effects of the program.

<span class="mw-page-title-main">Concurrency (computer science)</span> Ability to execute a task in a non-serial manner

In computer science, concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the outcome. This allows for parallel execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor and multi-core systems. In more technical terms, concurrency refers to the decomposability of a program, algorithm, or problem into order-independent or partially-ordered components or units of computation.

<span class="mw-page-title-main">Robert Watson (computer scientist)</span>

Robert Nicholas Maxwell Watson is a FreeBSD developer, and founder of the TrustedBSD Project. He is currently employed as a Professor of Systems, Security, and Architecture in the Security Research Group at the University of Cambridge Computer Laboratory.

Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods—instead of sequentially—with one completing before the next starts.

<span class="mw-page-title-main">Philip Wadler</span> American computer scientist

Philip Lee Wadler is a UK-based American computer scientist known for his contributions to programming language design and type theory. He is the chair of theoretical computer science at the Laboratory for Foundations of Computer Science at the School of Informatics, University of Edinburgh. He has contributed to the theory behind functional programming and the use of monads; and the designs of the purely functional language Haskell and the XQuery declarative query language. In 1984, he created the Orwell language. Wadler was involved in adding generic types to Java 5.0. He is also author of "Theorems for free!", a paper that gave rise to much research on functional language optimization.

A free list is a data structure used in a scheme for dynamic memory allocation. It operates by connecting unallocated regions of memory together in a linked list, using the first word of each unallocated region as a pointer to the next. It is most suitable for allocating from a memory pool, where all objects have the same size.

In programming and software design, binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service.

<span class="mw-page-title-main">Damien Doligez</span> French academic and programmer

Damien Doligez is a French academic and programmer. He is best known for his role as a developer of the OCaml system, especially its garbage collector. He is a research scientist at the French government research institution INRIA.

<span class="mw-page-title-main">Lawrence Paulson</span> American computer scientist

Lawrence Charles Paulson is an American computer scientist. He is a Professor of Computational Logic at the University of Cambridge Computer Laboratory and a Fellow of Clare College, Cambridge.

<span class="mw-page-title-main">Eben Upton</span> Welsh computer scientist (born 1978)

Eben Christopher Upton is the Welsh CEO of Raspberry Pi (Trading) Ltd., which runs the engineering and trading activities of the Raspberry Pi Foundation. He is responsible for the overall software and hardware architecture of the Raspberry Pi device. He is a former technical director and ASIC architect for Broadcom.

Kenneth P. Birman is a professor in the Department of Computer Science at Cornell University. He currently holds the N. Rama Rao Chair in Computer Science.

<span class="mw-page-title-main">Unikernel</span> Specialised, single address space machine images

A unikernel is a computer program statically linked with the operating system code on which it depends. Unikernels are built with a specialized compiler that identifies the operating system services that a program uses and links it with one or more library operating systems that provide them. Such a program requires no separate operating system and can run instead as the guest of a hypervisor.

Futhark is a functional data parallel array programming language originally developed at UCPH Department of Computer Science (DIKU) as part of the HIPERFIT project. It focuses on enabling data parallel programs written in a functional style to be executed with high performance on massively parallel hardware, in particular on graphics processing units (GPUs). Futhark is strongly inspired by NESL, and its implementation uses a variant of the flattening transformation, but imposes constraints on how parallelism can be expressed in order to enable more aggressive compiler optimisations. In particular, irregular nested data parallelism is not supported.

<span class="mw-page-title-main">Owl Scientific Computing</span> Numerical programming library for the OCaml programming language

Owl Scientific Computing is a software system for scientific and engineering computing developed in the Department of Computer Science and Technology, University of Cambridge. The System Research Group (SRG) in the department recognises Owl as one of the representative systems developed in SRG in the 2010s. The source code is licensed under the MIT License and can be accessed from the GitHub repository.

In type theory, session types are used to ensure correctness in concurrent programs. They guarantee that messages sent and received between concurrent programs are in the expected order and of the expected type. Session type systems have been adapted for both channel and actor systems.

References

  1. Matu, Shakira (27 October 2020). "J M Keynes Fellows". www.cshss.cam.ac.uk.
  2. Madhavapeddy, Anil (2 November 2021). "Professor Anil Madhavapeddy". 4c.cst.cam.ac.uk.
  3. Noone, Greg (17 March 2022). "Can crypto save the planet?". Tech Monitor. Retrieved 8 February 2023.
  4. Madhavapeddy, Anil (2010). Creating high-performance, statically type-safe network applications. cl.cam.ac.uk (PhD thesis). University of Cambridge.
  5. Madhavapeddy, Anil; Minsky, Yaron (September 2022). Real World OCaml (2nd ed.). Cambridge: Cambridge University Press. ISBN   9781009129220.
  6. Minsky, Yaron; Madhavapeddy, Anil; Hickey, Jason (December 2013). Real World OCaml (1st ed.). O'Reilly Media. ISBN   9781449323912.
  7. "COS 326: Functional Programming (Fall 2016)". www.cs.princeton.edu.
  8. "CS 6110: Resources". www.cs.cornell.edu.
  9. "CIS120 Resources". www.cis.upenn.edu.
  10. "Department of Computer Science and Technology – Course pages 2019–20: Foundations of Computer Science". www.cl.cam.ac.uk. Retrieved 27 January 2020.
  11. Madhavapeddy, Anil; Scott, David J. (15 December 2013). "Unikernels: Rise of the Virtual Library Operating System". ACM Queue . 11 (11): 30–44. doi: 10.1145/2557963.2566628 . ISSN   1542-7730. S2CID   29494014 . Retrieved 9 January 2023.
  12. Madhavapeddy, Anil; Mortier, Richard; Rotsos, Charalampos; Scott, David; Singh, Balraj; Gazagnaire, Thomas; Smith, Steven; Hand, Steven; Crowcroft, Jon (16 March 2013). "Unikernels: library operating systems for the cloud". ACM SIGARCH Computer Architecture News. 41 (1): 461–472. doi: 10.1145/2490301.2451167 . ISSN   0163-5964 . Retrieved 9 January 2023.
  13. Madhavapeddy, Anil; Leonard, Thomas; Skjegstad, Magnus; Gazagnaire, Thomas; Sheets, David; Scott, Dave; Mortier, Richard; Chaudhry, Amir; Singh, Balraj; Ludlam, Jon; Crowcroft, Jon; Leslie, Ian (4 May 2015). "Jitsu: just-in-time summoning of unikernels". Proceedings of the 12th USENIX Conference on Networked Systems Design and Implementation. NSDI'15. USA: USENIX Association. pp. 559–573. ISBN   978-1-931971-21-8.
  14. Sivaramakrishnan, KC; Dolan, Stephen; White, Leo; Jaffer, Sadiq; Kelly, Tom; Sahoo, Anmol; Parimala, Sudha; Dhiman, Atul; Madhavapeddy, Anil (3 August 2020). "Retrofitting parallelism onto OCaml". Proceedings of the ACM on Programming Languages. 4 (ICFP): 113–1–113:30. arXiv: 2004.11663 . doi: 10.1145/3408995 . S2CID   216144811 . Retrieved 9 January 2023.
  15. Sivaramakrishnan, KC; Dolan, Stephen; White, Leo; Kelly, Tom; Jaffer, Sadiq; Madhavapeddy, Anil (18 June 2021). "Retrofitting effect handlers onto OCaml". Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. PLDI 2021. New York, NY, USA: Association for Computing Machinery. pp. 206–221. arXiv: 2104.00250 . doi:10.1145/3453483.3454039. ISBN   978-1-4503-8391-2.
  16. "Cambridge Centre for Carbon Credits (4C)". 4c.cst.cam.ac.uk.
  17. Dhanesha, Neel (26 May 2022). "WeWork co-founder Adam Neumann's new crypto project sounds like a scam within a scam". Vox.
  18. Robert Bluman (May 2014). "Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language". website (Podcast).
  19. "Interview with Anil Madhavapeddy and Richard Mortier, MirageOS: compiling functional library operating systems". archive.fosdem.org.
  20. Randal Schwartz (July 2014). "FLOSS Weekly 302 OpenMirage". website (Podcast).
  21. "OCaml.org governance". OCaml.
  22. Kurth, Lars (23 February 2017). "Xen Project's MirageOS Expands its Ecosystem in Latest Release".
  23. "openbsd stats". oxide.org.
  24. "OpenBSD: Innovations". www.openbsd.org.
  25. "About the Tezos Foundation". Tezos Foundation.
  26. "Anil Madhavapeddy - Council Member at Tezos Foundation". THE ORG.
  27. "Sustainability Advisory Board". OpenUK.
  28. MSV, Janakiram. "Unikernels - The Shiny New Object In The Cloud". Forbes. Retrieved 8 February 2023.
  29. "Docker Acquires Unikernel Systems As It Looks Beyond Containers". Techcrunch. January 2016.
  30. "Why does Unikernel Systems Joining Docker Make A Lot of Sense? - High Scalability -". highscalability.com.
  31. "moby/hyperkit". 2 January 2023 via GitHub.
  32. "VPN-friendly networking devices for HyperKit". 3 January 2023 via GitHub.
  33. "Improving Docker with Unikernels: Introducing HyperKit, VPNKit and DataKit". www.docker.com. Docker. 18 May 2016.
  34. Yaron Minsky (November 2021). "What is an Operating System?". website (Podcast). Jane Street Capital.
  35. The functional innards of Docker for Mac and Windows on YouTube
  36. "opam - A package manager for OCaml". 24 February 2023 via GitHub.
  37. "OCaml Labs". anil.recoil.org.
  38. "OCaml Users and Developers Workshop 2012". OCaml.
  39. "Topics tagged multicore-monthly". OCaml.
  40. "OCaml Packages · Search Result". OCaml.
  41. ltd, company check. "HIGH ENERGY MAGIC LIMITED. Free business summary taken from official companies house information. Free alerts. Registered as 04752113". Company Check.
  42. "Camera Phone snapshots connect the dots". New York Times . October 2004.
  43. "From the Prawn of Time". Wired. June 2004.
  44. "Team - The Horde Project". www.horde.org.
  45. "Authors - Chora - The Horde Project". www.horde.org.
  46. "Mars Polar Lander 1998 site mirror". Space Research Institute .
  47. Doherty, N.; A. Madhavapeddy. Application of Distributed Web Site Acceleration: Mars Polar Lander (PDF) (Technical report). NetApp.
  48. Madhavapeddy, A.; A. Crivelli. How to Build a Content Delivery Network (PDF) (Technical report). NetApp.