SlideShare a Scribd company logo
1 of 46
Download to read offline
Cloud, Distributed, Embedded.
Erlang in the Heterogeneous Computing World

Omer Kilic || @OmerK
omer@erlang-solutions.com
Outline
•
•
•
•
•
•
•
•

Challenges in modern computing systems
Heterogeneous computing
Co-processors and accelerators
Programming models and tools
Alternate architectures
Parallella Vision System
Erlang Embedded Project
Q&A

10/12/2013

Build Stuff 2013

Slide 2 of 46
Challenges: Software

• Frequency wall
• Memory bottlenecks
• Software complexity

10/12/2013

Build Stuff 2013

Slide 3 of 46
Amdahl’s Law
• “…the maximum speed-up through parallel
processing is set by the amount of code which
has to run serial”

10/12/2013

Build Stuff 2013

Slide 4 of 46
Challenges: Hardware

• Yield issues
• Wiring and interconnect
• Thermal density

• Power consumption
End of Moore’s law imminent…
10/12/2013

Build Stuff 2013

Slide 5 of 46
Challenges
“With nearly 10 billion devices connected to the
internet and predictions for exponential growth,
we’ve reached a point where the space, power,
and cost demands of traditional technology are
no longer sustainable.”
Meg Whitman
President and CEO, HP

10/12/2013

Build Stuff 2013

Slide 6 of 46
Internet of Things

10/12/2013

Build Stuff 2013

Slide 7 of 46
Device Architectures (I)

10/12/2013

Build Stuff 2013

Slide 8 of 46
Device Architectures (II)

10/12/2013

Build Stuff 2013

Slide 9 of 46
Heterogeneous Computing (I)
• Special purpose, highly specialised
architectures will outperform general purpose
processing devices
– Possibly by orders of magnitude
– In terms of energy efficiency as well as raw speed
– Parallel execution is key

• Non-programmable/pseudo-programmable
accelerators: ASIC, DSP, GPU, …
• Fully programmable accelerators: FPGAs
10/12/2013

Build Stuff 2013

Slide 10 of 46
Open Compute Project

10/12/2013

Build Stuff 2013

Slide 11 of 46
Heterogeneous Computing (II)

10/12/2013

Build Stuff 2013

Slide 12 of 46
GPUs

10/12/2013

Build Stuff 2013

Slide 13 of 46
Anatomy of a GPU

10/12/2013

Build Stuff 2013

Slide 14 of 46
Co-processors: NetFPGA 10G

10/12/2013

Build Stuff 2013

Slide 15 of 46
Co-processors: Generic COTS devices

10/12/2013

Build Stuff 2013

Slide 16 of 46
Landscape of accelerator programming
Interface

CUDA

OpenCL

DirectCompute

RenderScript

Originator

NVIDIA

Khronos (Apple)

Microsoft

Google

Year

2007

2008

2009

2011

Area

HPC, desktop

Desktop, mobile,
embedded, HPC

Desktop

Mobile

OS

Windows, Linux,
Mac OS

Windows, Linux,
Mac OS (10.6+)

Windows (Vista+)

Android (3.0+)

Devices

GPUs (NVIDIA)

CPUs, GPUs,
custom

GPUs (NVIDIA,
AMD)

CPUs, GPUs,
DSPs

Work unit

Kernel

Kernel

Compute shader

Compute script

Language

CUDA C/C++

OpenCL C

HLSL

Script C

Distributed

Source, PTX

Source

Source, bytecode

LLVM bitcode

From: “The landscape of accelerator programming: a view from ARM”, Lokhmotov, A.,
3rd UK GPU Computing Conference, London
10/12/2013

Build Stuff 2013

Slide 17 of 46
Accelerator types
• Programmable accelerators
– CPU Vector extensions: x86/SSE/AVX,
PowerPC/VMX, ARM/NEON
– GPUs supporting general-purpose computing
(GPGPUs)
– Sony/Toshiba/IBM Cell (Sony PlayStation 3, HPC)
– ClearSpeed CSX (HPC, embedded)
– Adapteva Epiphany (HPC, mobile)
– Intel MIC (HPC)

10/12/2013

Build Stuff 2013

Slide 18 of 46
Programming accelerators
• Proprietary low-level APIs, typically C-based:
– Vector intrinsics
– NVIDIA CUDA
– ATI Brook+
– ClearSpeed Cn

• No software portability, obsolescence risk.

10/12/2013

Build Stuff 2013

Slide 19 of 46
OpenCL (I)
“OpenCL (Open Computing Language) is an open,
royalty-free standard for general-purpose parallel
programming of heterogeneous systems. OpenCL
provides a uniform programming environment for
software developers to write efficient, portable code for
high-performance compute servers, desktop computer
systems and handheld devices using a diverse mix of
multi-core CPUs, GPUs, Cell-type architectures and
other parallel processors such as DSPs.”

10/12/2013

Build Stuff 2013

Slide 20 of 46
OpenCL (II)
• Allows you to write C like code which executes
on GPUs and many other devices
– CPUs, FPGAs, various other architectures

• Key point is data parallelism: applying the
same function to a large amount of data
• Allows us to leverage devices like GPUs from
Erlang easily with a minimal wrapper

10/12/2013

Build Stuff 2013

Slide 21 of 46
The Parallella Board

10/12/2013

Build Stuff 2013

Slide 22 of 46
Shiny prototype!

10/12/2013

Build Stuff 2013

Slide 23 of 46
The Parallella Board

10/12/2013

Build Stuff 2013

Slide 24 of 46
Epiphany Architecture

10/12/2013

Build Stuff 2013

Slide 25 of 46
Epiphany-IV 64-core 28nm (E64G401)
•
•
•
•
•
•
•
•
•
•
•
•

64 High Performance RISC CPU Cores
800 MHz Operating Frequency
100 GFLOPS Peak Performance
1.6 TB/s Local Memory Bandwidth
102 GB/s Network-On-Chip Bisection Bandwidth
6.4 GB/s Off-Chip Bandwidth
2 MB On-Chip Distributed Shared Memory
2 Watt Maximum Chip Power Consumption
IEEE Floating Point Instruction Set
Fully-featured ANSI-C/C++ programmable
GNU/Eclipse based tool chain
Source synchronous LVDS off chip links for host or direct chip-tochip interfacing.
• Chip to chip links for integrating up to 64 chips on a single board

10/12/2013

Build Stuff 2013

Slide 26 of 46
Parallella Vision Demo - Overview

10/12/2013

Build Stuff 2013

Slide 27 of 46
Parallella Vision Demo - Cameras

10/12/2013

Build Stuff 2013

Slide 28 of 46
Parallella Vision Demo - Architecture

10/12/2013

Build Stuff 2013

Slide 29 of 46
OpenCL and Erlang
• Erlang is not that great for crunching image data.
– This is where OpenCL fits in.

• Erlang provides an environment around OpenCL.
Our server implementation collect frames,
offloads processing to Epiphany and send results
back.
– Low latency distributed communications and
message passing between processes and nodes
– Monitoring and supervision facilities
– “Glue” between heterogeneous nodes
10/12/2013

Build Stuff 2013

Slide 30 of 46
OpenCL on the Parallella
• Parallella is a little different than standard
GPUs
– Work sizes are different (smaller amount of cores
compared to GPU)
– Requires some forethought into structuring your
kernels

10/12/2013

Build Stuff 2013

Slide 31 of 46
Parallella and Erlang
• Ubuntu armhf packages up and running
– Will be included in the standard distro image

• Vision Demo code available now
– https://github.com/esl/parcv

10/12/2013

Build Stuff 2013

Slide 32 of 46
Embedded Landscape

10/12/2013

Build Stuff 2013

Slide 34 of 46
#include <stats.h>

Source: http://embedded.com/electronics-blogs/programming-pointers/4372180/Unexpected-trends

10/12/2013

Build Stuff 2013

Slide 35 of 46
External Interfaces in Erlang

10/12/2013

Build Stuff 2013

Slide 36 of 46
Accessing hardware
• Peripherals are memory mapped
• Access via /dev/mem…
– Faster, needs root, potentially dangerous!

• …or by kernel modules/sysfs
– Slower, doesn’t need root, easier, relatively safer

Generally very messy…

10/12/2013

Build Stuff 2013

Slide 37 of 46
Introducing…

Erlang/ALE
Actor

Library for
Embedded
http://github.com/esl/erlang-ale

10/12/2013

Build Stuff 2013

Slide 38 of 46
Erlang/ALE
• Brings embedded peripheral interfaces into
the Erlang domain
• Provides easy to use, familiar abstractions for
Erlang programmers
• Uses Raspberry Pi as reference platform, easy
to port it to other embedded platforms
• Open source (Apache version 2)

10/12/2013

Build Stuff 2013

Slide 39 of 46
Beta release
• Based on pihwm
– http://omerk.github.io/pihwm

• GPIO and GPIO interrupts, SPI, I2C and PWM
peripherals supported
• Documentation, supporting material and
educational package under development

10/12/2013

Build Stuff 2013

Slide 40 of 46
ALE Example: Blink!
{ok, _} = gpio:start_link(?LED_PIN, output),
blink() ->
gpio:write(?LED_PIN, 1),
timer:sleep(1000),
gpio:write(?LED_PIN, 0),
timer:sleep(1000).

10/12/2013

Build Stuff 2013

Slide 41 of 46
ALE Example: Interrupts
{ok, _} = gpio:start_link(?IN_PIN, input),
ok = gpio:set_int(?IN_PIN, rising),
handle_info({gpio_interrupt, _Pin,
_Condition}, State) ->
blink().

10/12/2013

Build Stuff 2013

Slide 42 of 46
Hardware Projects – Demo Board

10/12/2013

Build Stuff 2013

Slide 43 of 46
Packages for Embedded Architectures

https://www.erlang-solutions.com/downloads/download-erlang-otp

10/12/2013

Build Stuff 2013

Slide 44 of 46
Erlang

10/12/2013

Build Stuff 2013

Slide 45 of 46
Thank you
• http://erlang-embedded.com
• embedded@erlang-solutions.com
• @ErlangEmbedded

“

The world is concurrent.
Things in the world don't share data.
Things communicate with messages.
Things fail.
- Joe Armstrong
Father of Erlang

10/12/2013

Build Stuff 2013

Slide 46 of 46

More Related Content

What's hot

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
Synthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrumSynthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrumHossam Hassan
 
Introduction to fpga synthesis tools
Introduction to fpga synthesis toolsIntroduction to fpga synthesis tools
Introduction to fpga synthesis toolsHossam Hassan
 
Public Seminar_Final 18112014
Public Seminar_Final 18112014Public Seminar_Final 18112014
Public Seminar_Final 18112014Hossam Hassan
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeOfer Rosenberg
 
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyDesign of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyTELKOMNIKA JOURNAL
 
Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureChristian Charreyre
 
Electronic Design Automation
Electronic Design AutomationElectronic Design Automation
Electronic Design AutomationCADD Centre
 
Intel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFIntel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFOfer Rosenberg
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL Amr Rashed
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Pradeep Singh
 
Nios2 and ip core
Nios2 and ip coreNios2 and ip core
Nios2 and ip coreanishgoel
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)rinnocente
 
Automatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapAutomatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapManolis Vavalis
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Harshit Srivastava
 

What's hot (20)

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Synthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrumSynthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrum
 
Introduction to fpga synthesis tools
Introduction to fpga synthesis toolsIntroduction to fpga synthesis tools
Introduction to fpga synthesis tools
 
Public Seminar_Final 18112014
Public Seminar_Final 18112014Public Seminar_Final 18112014
Public Seminar_Final 18112014
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universe
 
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyDesign of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
 
Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architecture
 
The GPGPU Continuum
The GPGPU ContinuumThe GPGPU Continuum
The GPGPU Continuum
 
Electronic Design Automation
Electronic Design AutomationElectronic Design Automation
Electronic Design Automation
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 
GPU Ecosystem
GPU EcosystemGPU Ecosystem
GPU Ecosystem
 
Intel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFIntel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOF
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
 
Intel galileo
Intel galileoIntel galileo
Intel galileo
 
Nios2 and ip core
Nios2 and ip coreNios2 and ip core
Nios2 and ip core
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)
 
Automatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapAutomatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmap
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2
 

Viewers also liked

Customers And Employees Sample Slides
Customers And Employees Sample SlidesCustomers And Employees Sample Slides
Customers And Employees Sample SlidesBill Gammell
 
Internet Of Things in Automobile Industry
Internet Of Things in Automobile IndustryInternet Of Things in Automobile Industry
Internet Of Things in Automobile IndustryIEI GSC
 
The Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the FutureThe Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the FutureNudge Software Inc.
 
Embedded system in automobile
Embedded system in automobileEmbedded system in automobile
Embedded system in automobileAali Aalim
 
Smart antenna systems
Smart antenna systems Smart antenna systems
Smart antenna systems Apoorva Shetty
 
Embedded Systems in Automobile
Embedded Systems in AutomobileEmbedded Systems in Automobile
Embedded Systems in AutomobileAbhishek Sutrave
 
Smart Camera as Embedded System
Smart Camera as Embedded SystemSmart Camera as Embedded System
Smart Camera as Embedded SystemPunnam Chandar
 

Viewers also liked (9)

Customers And Employees Sample Slides
Customers And Employees Sample SlidesCustomers And Employees Sample Slides
Customers And Employees Sample Slides
 
Sentinel Smart Car Devices
Sentinel Smart Car DevicesSentinel Smart Car Devices
Sentinel Smart Car Devices
 
Internet Of Things in Automobile Industry
Internet Of Things in Automobile IndustryInternet Of Things in Automobile Industry
Internet Of Things in Automobile Industry
 
The Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the FutureThe Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the Future
 
Connected Car Technology
Connected Car TechnologyConnected Car Technology
Connected Car Technology
 
Embedded system in automobile
Embedded system in automobileEmbedded system in automobile
Embedded system in automobile
 
Smart antenna systems
Smart antenna systems Smart antenna systems
Smart antenna systems
 
Embedded Systems in Automobile
Embedded Systems in AutomobileEmbedded Systems in Automobile
Embedded Systems in Automobile
 
Smart Camera as Embedded System
Smart Camera as Embedded SystemSmart Camera as Embedded System
Smart Camera as Embedded System
 

Similar to Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World

Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11chitlesh
 
0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlabNational Cheng Kung University
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Intel® Software
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12chitlesh
 
20150528 group presentation jing
20150528 group presentation jing20150528 group presentation jing
20150528 group presentation jingJing Deng
 
LCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLinaro
 
Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Brendan Gregg
 
YOW2021 Computing Performance
YOW2021 Computing PerformanceYOW2021 Computing Performance
YOW2021 Computing PerformanceBrendan Gregg
 
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...chiportal
 
Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)Lablup Inc.
 
Achieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile DevicesAchieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile DevicesQualcomm Research
 
DATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceDATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceLEGATO project
 
Harnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligenceHarnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligenceAlison B. Lowndes
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
Trends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient PerformanceTrends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient Performanceinside-BigData.com
 
FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)Julien SIMON
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...mCloud
 

Similar to Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World (20)

Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11
 
0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12
 
20150528 group presentation jing
20150528 group presentation jing20150528 group presentation jing
20150528 group presentation jing
 
LCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience Report
 
Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)
 
YOW2021 Computing Performance
YOW2021 Computing PerformanceYOW2021 Computing Performance
YOW2021 Computing Performance
 
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
 
Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)
 
Achieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile DevicesAchieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile Devices
 
DATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceDATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe Conference
 
Harnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligenceHarnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligence
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Fixed-point Multi-Core DSP Platform
Fixed-point Multi-Core DSP PlatformFixed-point Multi-Core DSP Platform
Fixed-point Multi-Core DSP Platform
 
Amd vs intel
Amd vs intelAmd vs intel
Amd vs intel
 
GIST AI-X Computing Cluster
GIST AI-X Computing ClusterGIST AI-X Computing Cluster
GIST AI-X Computing Cluster
 
Trends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient PerformanceTrends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient Performance
 
FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 

More from Omer Kilic

Bare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build SystemsBare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build SystemsOmer Kilic
 
Gearing up for Volume Manufacturing
Gearing up for Volume ManufacturingGearing up for Volume Manufacturing
Gearing up for Volume ManufacturingOmer Kilic
 
The Process of Shipping Hardware Products
The Process of Shipping Hardware ProductsThe Process of Shipping Hardware Products
The Process of Shipping Hardware ProductsOmer Kilic
 
Confusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware KerfuffleConfusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware KerfuffleOmer Kilic
 
Fast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profitFast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profitOmer Kilic
 
concurrency.cc OSHUG #3
concurrency.cc OSHUG #3concurrency.cc OSHUG #3
concurrency.cc OSHUG #3Omer Kilic
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino WorkshopOmer Kilic
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoOmer Kilic
 
Interfacing with Arduino
Interfacing with ArduinoInterfacing with Arduino
Interfacing with ArduinoOmer Kilic
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyOmer Kilic
 
TinkerSoc Electronics 101
TinkerSoc Electronics 101TinkerSoc Electronics 101
TinkerSoc Electronics 101Omer Kilic
 
Beer Bottle Night Lamp
Beer Bottle Night LampBeer Bottle Night Lamp
Beer Bottle Night LampOmer Kilic
 

More from Omer Kilic (12)

Bare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build SystemsBare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
 
Gearing up for Volume Manufacturing
Gearing up for Volume ManufacturingGearing up for Volume Manufacturing
Gearing up for Volume Manufacturing
 
The Process of Shipping Hardware Products
The Process of Shipping Hardware ProductsThe Process of Shipping Hardware Products
The Process of Shipping Hardware Products
 
Confusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware KerfuffleConfusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware Kerfuffle
 
Fast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profitFast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profit
 
concurrency.cc OSHUG #3
concurrency.cc OSHUG #3concurrency.cc OSHUG #3
concurrency.cc OSHUG #3
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino Workshop
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Interfacing with Arduino
Interfacing with ArduinoInterfacing with Arduino
Interfacing with Arduino
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon Technology
 
TinkerSoc Electronics 101
TinkerSoc Electronics 101TinkerSoc Electronics 101
TinkerSoc Electronics 101
 
Beer Bottle Night Lamp
Beer Bottle Night LampBeer Bottle Night Lamp
Beer Bottle Night Lamp
 

Recently uploaded

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligencePrecisely
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?Paolo Missier
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 

Recently uploaded (20)

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 

Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World

  • 1. Cloud, Distributed, Embedded. Erlang in the Heterogeneous Computing World Omer Kilic || @OmerK omer@erlang-solutions.com
  • 2. Outline • • • • • • • • Challenges in modern computing systems Heterogeneous computing Co-processors and accelerators Programming models and tools Alternate architectures Parallella Vision System Erlang Embedded Project Q&A 10/12/2013 Build Stuff 2013 Slide 2 of 46
  • 3. Challenges: Software • Frequency wall • Memory bottlenecks • Software complexity 10/12/2013 Build Stuff 2013 Slide 3 of 46
  • 4. Amdahl’s Law • “…the maximum speed-up through parallel processing is set by the amount of code which has to run serial” 10/12/2013 Build Stuff 2013 Slide 4 of 46
  • 5. Challenges: Hardware • Yield issues • Wiring and interconnect • Thermal density • Power consumption End of Moore’s law imminent… 10/12/2013 Build Stuff 2013 Slide 5 of 46
  • 6. Challenges “With nearly 10 billion devices connected to the internet and predictions for exponential growth, we’ve reached a point where the space, power, and cost demands of traditional technology are no longer sustainable.” Meg Whitman President and CEO, HP 10/12/2013 Build Stuff 2013 Slide 6 of 46
  • 7. Internet of Things 10/12/2013 Build Stuff 2013 Slide 7 of 46
  • 8. Device Architectures (I) 10/12/2013 Build Stuff 2013 Slide 8 of 46
  • 10. Heterogeneous Computing (I) • Special purpose, highly specialised architectures will outperform general purpose processing devices – Possibly by orders of magnitude – In terms of energy efficiency as well as raw speed – Parallel execution is key • Non-programmable/pseudo-programmable accelerators: ASIC, DSP, GPU, … • Fully programmable accelerators: FPGAs 10/12/2013 Build Stuff 2013 Slide 10 of 46
  • 11. Open Compute Project 10/12/2013 Build Stuff 2013 Slide 11 of 46
  • 14. Anatomy of a GPU 10/12/2013 Build Stuff 2013 Slide 14 of 46
  • 15. Co-processors: NetFPGA 10G 10/12/2013 Build Stuff 2013 Slide 15 of 46
  • 16. Co-processors: Generic COTS devices 10/12/2013 Build Stuff 2013 Slide 16 of 46
  • 17. Landscape of accelerator programming Interface CUDA OpenCL DirectCompute RenderScript Originator NVIDIA Khronos (Apple) Microsoft Google Year 2007 2008 2009 2011 Area HPC, desktop Desktop, mobile, embedded, HPC Desktop Mobile OS Windows, Linux, Mac OS Windows, Linux, Mac OS (10.6+) Windows (Vista+) Android (3.0+) Devices GPUs (NVIDIA) CPUs, GPUs, custom GPUs (NVIDIA, AMD) CPUs, GPUs, DSPs Work unit Kernel Kernel Compute shader Compute script Language CUDA C/C++ OpenCL C HLSL Script C Distributed Source, PTX Source Source, bytecode LLVM bitcode From: “The landscape of accelerator programming: a view from ARM”, Lokhmotov, A., 3rd UK GPU Computing Conference, London 10/12/2013 Build Stuff 2013 Slide 17 of 46
  • 18. Accelerator types • Programmable accelerators – CPU Vector extensions: x86/SSE/AVX, PowerPC/VMX, ARM/NEON – GPUs supporting general-purpose computing (GPGPUs) – Sony/Toshiba/IBM Cell (Sony PlayStation 3, HPC) – ClearSpeed CSX (HPC, embedded) – Adapteva Epiphany (HPC, mobile) – Intel MIC (HPC) 10/12/2013 Build Stuff 2013 Slide 18 of 46
  • 19. Programming accelerators • Proprietary low-level APIs, typically C-based: – Vector intrinsics – NVIDIA CUDA – ATI Brook+ – ClearSpeed Cn • No software portability, obsolescence risk. 10/12/2013 Build Stuff 2013 Slide 19 of 46
  • 20. OpenCL (I) “OpenCL (Open Computing Language) is an open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.” 10/12/2013 Build Stuff 2013 Slide 20 of 46
  • 21. OpenCL (II) • Allows you to write C like code which executes on GPUs and many other devices – CPUs, FPGAs, various other architectures • Key point is data parallelism: applying the same function to a large amount of data • Allows us to leverage devices like GPUs from Erlang easily with a minimal wrapper 10/12/2013 Build Stuff 2013 Slide 21 of 46
  • 22. The Parallella Board 10/12/2013 Build Stuff 2013 Slide 22 of 46
  • 24. The Parallella Board 10/12/2013 Build Stuff 2013 Slide 24 of 46
  • 26. Epiphany-IV 64-core 28nm (E64G401) • • • • • • • • • • • • 64 High Performance RISC CPU Cores 800 MHz Operating Frequency 100 GFLOPS Peak Performance 1.6 TB/s Local Memory Bandwidth 102 GB/s Network-On-Chip Bisection Bandwidth 6.4 GB/s Off-Chip Bandwidth 2 MB On-Chip Distributed Shared Memory 2 Watt Maximum Chip Power Consumption IEEE Floating Point Instruction Set Fully-featured ANSI-C/C++ programmable GNU/Eclipse based tool chain Source synchronous LVDS off chip links for host or direct chip-tochip interfacing. • Chip to chip links for integrating up to 64 chips on a single board 10/12/2013 Build Stuff 2013 Slide 26 of 46
  • 27. Parallella Vision Demo - Overview 10/12/2013 Build Stuff 2013 Slide 27 of 46
  • 28. Parallella Vision Demo - Cameras 10/12/2013 Build Stuff 2013 Slide 28 of 46
  • 29. Parallella Vision Demo - Architecture 10/12/2013 Build Stuff 2013 Slide 29 of 46
  • 30. OpenCL and Erlang • Erlang is not that great for crunching image data. – This is where OpenCL fits in. • Erlang provides an environment around OpenCL. Our server implementation collect frames, offloads processing to Epiphany and send results back. – Low latency distributed communications and message passing between processes and nodes – Monitoring and supervision facilities – “Glue” between heterogeneous nodes 10/12/2013 Build Stuff 2013 Slide 30 of 46
  • 31. OpenCL on the Parallella • Parallella is a little different than standard GPUs – Work sizes are different (smaller amount of cores compared to GPU) – Requires some forethought into structuring your kernels 10/12/2013 Build Stuff 2013 Slide 31 of 46
  • 32. Parallella and Erlang • Ubuntu armhf packages up and running – Will be included in the standard distro image • Vision Demo code available now – https://github.com/esl/parcv 10/12/2013 Build Stuff 2013 Slide 32 of 46
  • 33.
  • 36. External Interfaces in Erlang 10/12/2013 Build Stuff 2013 Slide 36 of 46
  • 37. Accessing hardware • Peripherals are memory mapped • Access via /dev/mem… – Faster, needs root, potentially dangerous! • …or by kernel modules/sysfs – Slower, doesn’t need root, easier, relatively safer Generally very messy… 10/12/2013 Build Stuff 2013 Slide 37 of 46
  • 39. Erlang/ALE • Brings embedded peripheral interfaces into the Erlang domain • Provides easy to use, familiar abstractions for Erlang programmers • Uses Raspberry Pi as reference platform, easy to port it to other embedded platforms • Open source (Apache version 2) 10/12/2013 Build Stuff 2013 Slide 39 of 46
  • 40. Beta release • Based on pihwm – http://omerk.github.io/pihwm • GPIO and GPIO interrupts, SPI, I2C and PWM peripherals supported • Documentation, supporting material and educational package under development 10/12/2013 Build Stuff 2013 Slide 40 of 46
  • 41. ALE Example: Blink! {ok, _} = gpio:start_link(?LED_PIN, output), blink() -> gpio:write(?LED_PIN, 1), timer:sleep(1000), gpio:write(?LED_PIN, 0), timer:sleep(1000). 10/12/2013 Build Stuff 2013 Slide 41 of 46
  • 42. ALE Example: Interrupts {ok, _} = gpio:start_link(?IN_PIN, input), ok = gpio:set_int(?IN_PIN, rising), handle_info({gpio_interrupt, _Pin, _Condition}, State) -> blink(). 10/12/2013 Build Stuff 2013 Slide 42 of 46
  • 43. Hardware Projects – Demo Board 10/12/2013 Build Stuff 2013 Slide 43 of 46
  • 44. Packages for Embedded Architectures https://www.erlang-solutions.com/downloads/download-erlang-otp 10/12/2013 Build Stuff 2013 Slide 44 of 46
  • 46. Thank you • http://erlang-embedded.com • embedded@erlang-solutions.com • @ErlangEmbedded “ The world is concurrent. Things in the world don't share data. Things communicate with messages. Things fail. - Joe Armstrong Father of Erlang 10/12/2013 Build Stuff 2013 Slide 46 of 46