Cloud Computing Platforms in a Multicore World. Functional programming languages to the rescue?
Cloud Computing Platforms in a Multicore World. Functional programming languages to the rescue? Joerg Fritsch, J.Fritsch@cs.cardiff.ac.uk School of Computer Science and Informatics, Cardiff University UK Virtualization Hardware Operating Operating Deployed ExampleAbstract Why functional (either 1: many or Platforms Systems Systems Adminis- applica- tion Preliminary resultsThis study seeks to match two disruptive Instantiated Demonstrator code to evaluate IPC paradigms ininnovations that both scale applications through Programming Languages? many:1) tered Instances Haskell has been developed and benchmarkedparallelization: The vision and the requirements of Built on the λ calculus. Expressions are building against a self-developed UDP based messaging Hardware 1 3 3 3 IBMcloud computing platforms. The multi-core block of programs. Computation consists of Virtualization z/VM system (cwmwl). For benchmarking a small subsetchallenge that has emerged since approximately expression evaluation. Data is immutable. No side of the the Intel MPI benchmark suite has been2007. The study investigates whether existing effects. All pure function can be executed Hypervisor 1 4 (including 3 3 KVM, implemented and measured. The benchmarks hypervisor VMWarefunctional programming languages could be the independent of each other yielding always the IaaS OS) were taken on 64-bit ARCH Linux virtual systemsright glue to bind these two innovations same result. with the Citrix Xen Hypervisors. Every virtual OS 1 1 3 3 BSDtogether, and thereby create a framework for Virtualization Jails system was configured with 2x2 vCPUs with 4GBfuture cloud computing platforms in a concurrent Functional programs are inherently parallel. Every RAM and 1GB IPv4 network connectivity. None ofmulti-core world. function can be executed on a different CPU core. PaaS 1 4 0 3 App- the resources was allowed oversubscription. To (current) scale “Start with a language whose computational fabric PaaS 1 1 0 3 cwmwl take the measurements and assess the quality of is by default parallel” (Peyton-Jones, 2011). (ideal) the readings, the Haskell criterion module wasHypothesis Clustering 3 3 3 3 used. Fig.2 shows the results.A Cloud Computing Platform (PaaS), where the Functional PLs promise to perform better inunit of scale is a process rather than an entire concurrent applications with orders of magnitudeoperating system, can be implemented if less code. Figure 1 Conclusionsfunctional programming languages can be used to Comparison of virtualization technologies as they In non congested data center networks, UDPprovide light weight units of scale (e.g. Examples: Lisp, ML, Scheme, Haskell, Erlang, Go, occurred since 1964. PaaS is the most economic datagrams outperform all other paradigms byfunctions, closures, components or blocks) across Clojure. GCC can detect and propose pure way to achieve the illusion of elasticity and of several 100% and are most predictable. Withmany cores in a multi tenant environment. functions: -Wsuggest-attribute=pure. Map- infinite computing (“Cloud Computing”). cwmwl the cost of process/thread Reduse is a functional programming model imprinted in an imperative language. synchronization could be lowered further thanGoals 9 initially expected.(1) Proof by demonstration: Identify and solve real 8.3 problems by building a real PaaS framework. Approach 8 Develop a Haskell Module or a Domain Specific Analyze the underlying formal models of 7 Programming Language (DSL) that can be used functional programming languages and what can as artefact to proof or disproof my hypothesis. be achieved within idiomatic boundaries. 6 5.5 5.3(2) Seek a formal proof by using mathematics or 5 4.5 programming language theory (PLT). Investigate Inter Process Communication (IPC) and choose or develop a lightweight basis for the 4 3.7 3.6 3.3 planned framework that can server as basis forWhy PaaS? investigations into e.g. security/multi tenancy, 3 2.5 2.2 2.8 2.1 2.1IaaS is using a combination of 1:many Mobility of code and closures, the actor model. 2 1.8 1.8 1.8 1.7 1.6 1.4 1.4(hypervisors) and many:1 (load 1.2 1.2 1.0 0.9 1.0 1.1 1.3 0.9 0.9 0.9 0.8 1balancers, clustering) “virtualizations” to achieve Investigate measures of scalability and distribution 0.6 0.7the illusion of elasticity. (“elasticity”) that merit the overhead of their 0 1 2 3 4 5 6 7 8 creation and IPC. E.g. software components,PaaS, if based on functional programming threads, closures, blocks or else. Investigate MessagePack (TCP/RPC) CWMWL (UDP)languages, does not need hypervisors or load whether software components are idiomatic in 0MQ (TCP queued @broker) 0MQ (TCP brokerless)balancers to duplicate and virtualize e.g. whole functional programming at all.operating systems (Fig.1). The unit of scale is Figure 2lightweight: e.g. threads, processes, closures. Develop the demonstrator code as Haskell module Results of a synchronous ping pong in dependency UDP messaging will be further investigated with “∞ number” of threads/processes thinkable or DSL. of the data size e.g. ping ping tests, queuing algorithms and DCCPwithout effort. (4B, 128B, 512B, 1024B, 2Kb, 4Kb, 8Kb and 16Kb). (RFC 4340). Other examples for UDP transport: DTLS, NFSv2 (as of NSFv3 optional) There is not enough data yet to speculate whether my hypothesis will eventually be proofed or disprooofed.