SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Parallel Rendering of Webpages
An approach based on Python and a Cluster of Single Board Computers (SBCs)
Introduction
▪ This presentation describes the hardware and software environment for
experimenting with the Parallel Rendering of Webpages;
▪ The hardware consists of a cluster of single board computers (SBCs) which run a
number of application servers that previously ran in the cloud (RHC and
Pythonanywhere). Each application server was associated with a single application
which was either available online or installed on a mobile device;
▪ The cluster described here has 50 cores plus 16 Epiphany cores. A web server runs
on each of the 50 cores. Two servers, running on the Parallella, have access to the
16 Epiphany cores;
▪ The software for rendering webpages, consists of a single library - the Parallel
Template Library.
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 2
Advantages of the Parallel Rendering of
Webpages
▪ An unexpected advantage is that designing applications to run on a cluster
improved the structure of the final code.
▪ Writing reusable code is a lot easier and in line with the original philosophy
behind UNIX (https://en.wikipedia.org/wiki/Unix_philosophy).
▪ The code can run on a single node so creating low cost products is still possible.
▪ Development times are reduced because software components are less complex
and their deployment easier to manage.
▪ The system can be scaled and managed easily.
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 3
The UNIX philosophy
▪ Make each program do one thing well. To do a new job, build afresh rather than complicate
old programs by adding new "features".
▪ Expect the output of every program to become the input to another, as yet unknown,
program. Don't clutter output with extraneous information. Avoid stringently columnar or
binary input formats. Don't insist on interactive input.
▪ Design and build software, even operating systems, to be tried early, ideally within weeks
(days). Don't hesitate to throw away the clumsy parts and rebuild them.
▪ Use tools in preference to unskilled help to lighten a programming task, even if you have to
detour to build the tools and expect to throw some of them out after you've finished using
them.
Doug McIlroy, E. N. Pinson, B. A. Tague (8 July 1978). "Unix Time-Sharing System: Foreword" . The Bell System Technical Journal.
Bell Laboratories. pp. 1902–1903.
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 4
SBC CLUSTER
Distributed applications
Main System Components
▪ Architecture
▪ Communication
▪ Programming
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 6
Main System Components
Network
and
Computer
Hardware
Architecture
File
Sharing
and
Cluster
Control
Cummuication
Python
libraries
Programming
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 7
System Architecture
Wifi/LAN
Network
Switch
Parrallella
SB 2
Computer
SB n+1 SB 8
Network
Switch
Control
Node
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 8
• Wifi router (ISP)
• Switch (TP-Link)
• Control Node
• ASUS tinker board (Linaro Debian)
• Single Board (SB) Computers
• Raspberry pi (Raspbian)
• Ordroid C1+ (Odrobian)
• Odroid C2 (Ubuntu)
• Orange pi pc (Armbian)
• Banana pi (Bananian)
• Nano pi M2,
• Parallella 16 (Linaro Debian)
System Architecture - components
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 9
System Architecture - Communication
openssh
Samba/NFS
Python 2.7 Mico-
web Frameworks
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 10
The Software stack
Application
PRW Libraries
Bottle, Waitress,
Socketserver and
Jina2
The minimum number of Python
packages needed to get started are
Bottle, Waitress and Jinja2
System Architecture - software
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 11
Single Board Computers
Computers < $100
Asus tinker board
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 13
• 2GB dual-channel LPDDR3 memory
• Gigabit LAN and Bluetooth 4.0 + EDR connectivity
• 802.11 b/g/n Wi-Fi
• Four USB 2.0 ports
• 40-pin internal header with 28 GPIO pins
• Contact points for PWM and S/PDIF signals
• 3.5mm audio jack connection
• CSI port for camera connection
• DSI port supporting HD resolution
• HDMI 2.0 port with 4K-resolution support
• MicroSD port supporting UHS-I card speed
• Supports Debian OS with Kodi
• 5V/2A Micro-USB power supply (not included)
Odroid c2
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 14
• Amlogic ARM® Cortex®-A53(ARMv8) 1.5Ghz quad core CPUs
• Mali™-450 GPU (3 Pixel-processors + 2 Vertex shader processors)
• 2Gbyte DDR3 SDRAM
• Gigabit Ethernet
• HDMI 2.0 4K/60Hz display
• H.265 4K/60FPS and H.264 4K/30FPS capable VPU
• 40pin GPIOs + 7pin I2S
• eMMC5.0 HS400 Flash Storage slot
• UHS-1 SDR50 MicroSD Card slot
• USB 2.0 Host x 4, USB OTG x 1 (power + data capable)
• Infrared(IR) Receiver
• Ubuntu 16.04 or Android 5.1 Lollipop based on Kernel 3.14LTS
Raspberry pi
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 15
• SoC: Broadcom BCM2837
• CPU: 4× ARM Cortex-A53, 1.2GHz
• GPU: Broadcom VideoCore IV
• RAM: 1GB LPDDR2 (900 MHz)
• Networking: 10/100 Ethernet, 2.4GHz 802.11n
wireless
• Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low
Energy
• Storage: microSD
• GPIO: 40-pin header, populated
• Ports: HDMI, 3.5mm analogue audio-video jack, 4×
USB 2.0, Ethernet, Camera Serial Interface (CSI),
Display Serial Interface (DSI)
Banana pi
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 16
• SoC – Allwinner A31s quad core Cortex A7 @ 1.0 GHz with
PowerVR SGX544MP2 GPU
• System Memory – 1GB DDR3
• Storage – Micro SD slot up to 64GB
• Connectivity – 10/100/1000 Ethernet, 802.11 b/g/n Wi-
Fi (Realtek)
• Video Output – HDMI, CVBS, and LVDS/RGB header
• Audio Output – HDMI and 3.5mm stereo jack
• Camera – CSI connector
• USB – 2x USB 2.0 host ports + micro USB port (power only)
• Debugging – UART pins for serial console
• Expansion Header – 40-pin R-Pi “somewhat” compatible header
with 2×13 UART, I2C bus, SPI bus, CAN bus, ADC, PWM, 3.3V,
5V, ground
• Misc – IR Receiver, power, reboot and reset buttons.
• Power Supply – 5V in via MicroUSB (DC in only)
Odroid c1+
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 17
• Amlogic ARM® Cortex®-A5(ARMv7) 1.5Ghz quad core CPUs
• Mali™-450 MP2 GPU (OpenGL ES 2.0/1.1 enabled for Linux
and Android)
• 1Gbyte DDR3 SDRAM
• Gigabit Ethernet
• 40pin GPIOs + 7pin I2S
• eMMC4.5 HS200 Flash Storage slot
• UHS-1 SDR50 MicroSD Card slot
• USB 2.0 Host x 4, USB OTG x 1 (power + data capable)
• Infrared(IR) Receiver
• Ubuntu or Android OS
Orange pi pc
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 18
• SoC – Allwinner H3 quad core Cortex A7 @ 1.3 GHz
with ARM Mali-400MP2 GPU up to 600 MHz
• System Memory – 1GB DDR3
• Storage – 8GB eMMC flash + micro SD card slot
• Video Output – HDMI with CEC, AV port
• Audio I/O – HDMI, AV port, on-board microphone
• Connectivity – 10/100M Ethernet, 802.11 b/g/n WiFi
with external antenna
• USB – 3x USB 2.0 host ports, 1x micro USB OTG port
• Camera – CSI Interface
• Expansions – 40-pin Raspberry Pi compatible header
with 28 GPIOs, UART, I2C, SPI, PWM, CAN, I2S,
SPDIF, LRADC, ADC, LINE-IN, FM-IN, and HP-IN
• Debugging – 3-pin UART header for serial console
• Misc – IR receiver; Power button; Power and status
LEDs
• Power Supply – 5V/2A via barrel jack (micro USB OTG
cannot be used to power the board).
Nanopi M1
▪ CPU: Allwinner H3, Quad-core Cortex-A7@1.2GHz
▪ GPU: Mali400MP2@600MHz,Supports OpenGL ES2.0
▪ DDR3 RAM:512MB/1GB
▪ Connectivity: 10/100M Ethernet
▪ Audio: 3.5mm audio jack/Via HDMI
▪ Microphone: Onboard microphone
▪ IR Receiver: Onboard IR receiver
▪ USB Host:Type A, USB 2.0 x 3
▪ MicroSD Slot x 1
▪ MicroUSB: for data transmission and power input, OTG
▪ Video Output: HDMI 1.4 1080P, CVBS
▪ DVP Camera Interface: 24pin, 0.5mm pitch FPC seat
▪ User Key: Power LED x 1, Reset x 1
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 19
Nanopi M3
▪ SoC: Samsung S5P6818 Octa-Core Cortex-A53, 400M Hz - 1.4G Hz
▪ Power Management Unit: AXP228 PMU, it supports software power-off and wake-up.
▪ System Memory: 1GB 32bit DDR3 RAM
▪ Storage: 1 x MicroSD Card Socket
▪ Ethernet: Gbit Ethernet(RTL8211E)
▪ WiFi: 802.11b/g/n
▪ Bluetooth: 4.0 dual mode
▪ Antenna: Porcelain Antenna IPX Interface
▪ Audio: 3.5 mm audio jack / via HDMI
▪ I2S: 7pin, 2.54mm pitch pin-header
▪ Microphone: onboard Microphone
▪ USB Host: 4 x USB 2.0 Host, two type A ports and two 2.54 mm pitch pin-headers
▪ MicroUSB: 1 x MicroUSB 2.0 Client, Type A
▪ LCD Interface: 0.5mm pitch 45 pin FPC seat, full color RGB 8-8-8
▪ HDMI: 1.4A Type A, 1080P
▪ LVDS: 20pin 2.00mm pitch pin-header
▪ DVP Camera: 0.5mm pitch 24 pin FPC seat
▪ User Key: K1 (power), Reset
▪ LED: 1 x power LED and 1 x status LED
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 20
Nanopc T3
▪ SoC: Samsung S5P6818 Octa-Core Cortex-A53, 400M Hz - 1.4G Hz
▪ Power Management Unit: AXP228 PMU, it supports software power-off and wake-up.
▪ System Memory: 1GB/2GB 32bit DDR3 RAM
▪ Storage: 1 x SD Card Socket
▪ Ethernet: Gbit Ethernet(RTL8211E)
▪ WiFi: 802.11b/g/n
▪ Bluetooth: 4.0 dual mode
▪ Antenna: Porcelain Antenna IPX Interface
▪ eMMC: 8GB
▪ Video Input: DVP Camera/MIPI-CSI (two camera interfaces)
▪ Video Output: HDMI Type-A / LVDS / Parallel RGB-LCD / MIPI-DSI (four video output interfaces)
▪ Audio: 3.5 mm audio jack / via HDMI
▪ Microphone: onboard Microphone
▪ USB Host: 4 x USB 2.0 Host, two type A ports and two 2.54 mm pitch pin-headers
▪ MicroUSB: 1 x MicroUSB 2.0 Client, Type A
▪ LCD Interface: 0.5mm pitch 45 pin FPC seat, full color RGB 8-8-8
▪ HDMI: 1.4A Type A, 1080P
▪ DVP Camera: 0.5mm pitch 24 pin FPC seat
▪ GPIO: 2.54 mm pitch 30 pin-header
▪ Serial Debug Port: 2.54mm pitch 4-pin-header
▪ User Key: K1 (power), Reset
▪ LED: 1 x power LED and 2 x GPIO LED
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 21
Parallella 16
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 22
• 18-core credit card sized computer
• #1 in energy efficiency @ 5W
• 16-core Epiphany RISC SOC
• Zynq SOC (FPGA + ARM A9)
• Gigabit Ethernet
• 1GB SDRAM
• Micro-SD storage
• Up to 48 GPIO pins
• HDMI, USB (optional)
Operating Systems
Linux flavours
Tinker OS
A debian distribution driven by the Linaro arm ecosystem and downloadable fomr the
ASUS tinker board product page
https://www.asus.com/uk/Single-board-Computer/TINKER-BOARD/
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 24
Ubuntu for Odroid c2
An Ubuntu Mate distribution downloadable from Hardkernel’s wiki:
http://odroid.com/dokuwiki/doku.php?id=en:odroid-c2
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 25
Odrobian for c1+
ODROBIAN is a pure, clean and lightweight Debian community distribution built
specifically for ODROID single board computers. The project is about getting the best
experience out of Linux built upon Debian for ODROIDs, since there ain't any official images
for this particular platform while it's mostly known for stability over ubuntu, the main goal is to
represent a perfectly working OS with the least issues possible, hopefully.
http://oph.mdrjr.net/odrobian/images/s805/
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 26
Armbian for the Orange pi pc
A lightweight Debian Jessie or Ubuntu Xenial based Linux distribution.
https://www.armbian.com/orange-pi-pc/
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 27
Bananian
Bananian Linux is a pre-installed Debian 8 image optimized for Banana Pi/Pro.
It uses the official Debian Jessie armhf repositories with a kernel and bootmanager (u-boot),
customized for Banana Pi/Pro.
A Debian 7/Wheezy image (Bananian 15.04) is also available and maintained.
We support the Banana Pi (M1, M1+), Banana Pro and BPI-R1 with just one single image.
A separate image for the Banana Pi M2 is also available.
https://www.bananian.org/bananapi-m2
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 28
Parabuntu (linaro)
An Ubuntu distribution driven by the Linaro arm ecosystem and downloadable from their
company website:
https://www.parallella.org/quick-start/
Parabuntu is the recommended Linux distribution which contains the firmware for Parallella
boards.
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 29
Parallel Rendering of
Webpages
Rendering Webpages
Parallel Template Library
• The Parallel Template Library (PRTL) is based on a very simple idea – let the
variable names to the work. Within a template, the node where the content for a
particular page component is generated is specified by the variable name.
Variable names within the template translate into a web address. For instance this
code
<h2>Crossword</h2>
<div class="wrapper">{{realtime_P1_V_cp}}</div>
tells the Parallel Template Library to obtain the content from:
http://realtime:4001/cp
• A variable is encoded in this way: <hostname><port>_V_<method>
• For this example, all port addresses are offset by 4000
• The PTL is essentially a preprocessor which finds variables referencing remote
content and then returns the fetched content.
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 31
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 32
Example Application – Python server code
Example Application - Jinja2 Template
Applications built with
the Parallel Template
Library
Offline content generation
Offline media library and realtime teaching tools
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 35
• The offline media library runs on an SBC cluster or single
SBC such as the raspberry pi and allows users to view
content from Wikipedia, TED and Project Gutenberg
without having an internet connection.
• Users can also generate tests and word games based on
viewed content.
• The parallel Template Library was used to combine the
functionality of the existing applications described above
to create this app.
Summary
A real-time tool for teachers and students alike – a synthesis of software and SBs
Developing apps to run on SBC clusters
5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 37
The parallel rendering of Webpages facilitates the creation of new
applications from existing ones without having to write too much code.
This is because the PTL allows new applications to be designed and
created by combining together the functionality of a large number of
dedicated web servers for the creation of new apps.

Weitere ähnliche Inhalte

Was ist angesagt?

OzKFest 2015 - (Solid) State of the Nation
OzKFest 2015 - (Solid) State of the NationOzKFest 2015 - (Solid) State of the Nation
OzKFest 2015 - (Solid) State of the Nationapple2europlus
 
Power Mac G5 ( Late 2005) Technical Specifications
Power  Mac  G5 ( Late 2005)    Technical  SpecificationsPower  Mac  G5 ( Late 2005)    Technical  Specifications
Power Mac G5 ( Late 2005) Technical SpecificationsSocial Media Marketing
 
Sound Devices 788T
Sound Devices 788TSound Devices 788T
Sound Devices 788TAV ProfShop
 
Snapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 ArchitectureSnapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 ArchitectureSantosh Verma
 
Fit pc-product-line-overview
Fit pc-product-line-overviewFit pc-product-line-overview
Fit pc-product-line-overviewabenitop
 
Flyport openPicus datasheet
Flyport openPicus datasheetFlyport openPicus datasheet
Flyport openPicus datasheetIonela
 
2018 all lens bag of tricks v1.2
2018 all lens bag of tricks v1.22018 all lens bag of tricks v1.2
2018 all lens bag of tricks v1.2Len Noe
 
NETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power socketsNETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power socketsLenka Peřinová
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingMichelle Holley
 
Everyday Practical Electronics April 2015 UK
Everyday Practical Electronics April 2015 UKEveryday Practical Electronics April 2015 UK
Everyday Practical Electronics April 2015 UKjustreleasedpdfs
 
Webinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriais
Webinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriaisWebinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriais
Webinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriaisEmbarcados
 
AP-VAC150 Video Doorphone for Unmmaned Facilities
AP-VAC150 Video Doorphone for Unmmaned FacilitiesAP-VAC150 Video Doorphone for Unmmaned Facilities
AP-VAC150 Video Doorphone for Unmmaned FacilitiesGuisun Han
 
Cyclone II FPGA Overview
Cyclone II FPGA OverviewCyclone II FPGA Overview
Cyclone II FPGA OverviewPremier Farnell
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLinaro
 

Was ist angesagt? (19)

OzKFest 2015 - (Solid) State of the Nation
OzKFest 2015 - (Solid) State of the NationOzKFest 2015 - (Solid) State of the Nation
OzKFest 2015 - (Solid) State of the Nation
 
DM8168 Dual SuperHD image capture using DaVinci
DM8168 Dual SuperHD image capture using DaVinciDM8168 Dual SuperHD image capture using DaVinci
DM8168 Dual SuperHD image capture using DaVinci
 
Power Mac G5 ( Late 2005) Technical Specifications
Power  Mac  G5 ( Late 2005)    Technical  SpecificationsPower  Mac  G5 ( Late 2005)    Technical  Specifications
Power Mac G5 ( Late 2005) Technical Specifications
 
GVT Decoder - DataSheet
GVT Decoder - DataSheetGVT Decoder - DataSheet
GVT Decoder - DataSheet
 
OMAP
OMAPOMAP
OMAP
 
Sound Devices 788T
Sound Devices 788TSound Devices 788T
Sound Devices 788T
 
Xbee manual
Xbee manualXbee manual
Xbee manual
 
Snapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 ArchitectureSnapdragon SoC and ARMv7 Architecture
Snapdragon SoC and ARMv7 Architecture
 
Fit pc-product-line-overview
Fit pc-product-line-overviewFit pc-product-line-overview
Fit pc-product-line-overview
 
Flyport openPicus datasheet
Flyport openPicus datasheetFlyport openPicus datasheet
Flyport openPicus datasheet
 
2018 all lens bag of tricks v1.2
2018 all lens bag of tricks v1.22018 all lens bag of tricks v1.2
2018 all lens bag of tricks v1.2
 
NETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power socketsNETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power sockets
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet Processing
 
Everyday Practical Electronics April 2015 UK
Everyday Practical Electronics April 2015 UKEveryday Practical Electronics April 2015 UK
Everyday Practical Electronics April 2015 UK
 
Webinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriais
Webinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriaisWebinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriais
Webinar: BlueNRG-LP - Bluetooth 5.2 de longo alcance para aplicações industriais
 
It's game time
It's game timeIt's game time
It's game time
 
AP-VAC150 Video Doorphone for Unmmaned Facilities
AP-VAC150 Video Doorphone for Unmmaned FacilitiesAP-VAC150 Video Doorphone for Unmmaned Facilities
AP-VAC150 Video Doorphone for Unmmaned Facilities
 
Cyclone II FPGA Overview
Cyclone II FPGA OverviewCyclone II FPGA Overview
Cyclone II FPGA Overview
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 

Ähnlich wie Parallel Rendering of Webpages

Baking a Raspberry PI with Chef Rob
Baking a Raspberry PI with Chef RobBaking a Raspberry PI with Chef Rob
Baking a Raspberry PI with Chef RobRobert Tisma
 
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoEmbarcados
 
Raspberry Pi Introduction
Raspberry Pi IntroductionRaspberry Pi Introduction
Raspberry Pi IntroductionMichal Sedlak
 
Multipilot pres-ufficiale def
Multipilot pres-ufficiale defMultipilot pres-ufficiale def
Multipilot pres-ufficiale defRoberto Navoni
 
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2Bhavin Chandarana
 
Microcontroller from basic_to_advanced
Microcontroller from basic_to_advancedMicrocontroller from basic_to_advanced
Microcontroller from basic_to_advancedImran Sheikh
 
Single chip computer for iot application
Single chip computer for iot application Single chip computer for iot application
Single chip computer for iot application iotleague
 
Using IT Equipment in Live Broadcast
Using IT Equipment in Live BroadcastUsing IT Equipment in Live Broadcast
Using IT Equipment in Live BroadcastKieran Kunhya
 
Single board computer options
Single board computer optionsSingle board computer options
Single board computer optionsALTANAI BISHT
 
Presentacion_p1.pdf
Presentacion_p1.pdfPresentacion_p1.pdf
Presentacion_p1.pdfIsaacNaveira
 
An Overview on Programmable System on Chip: PSoC-5
An Overview on Programmable System on Chip: PSoC-5An Overview on Programmable System on Chip: PSoC-5
An Overview on Programmable System on Chip: PSoC-5Premier Farnell
 
2015 02 28 DotNetSpain IoT Fight
2015 02 28 DotNetSpain IoT Fight2015 02 28 DotNetSpain IoT Fight
2015 02 28 DotNetSpain IoT FightBruno Capuano
 
Raspberry pi technical documentation
Raspberry pi technical documentationRaspberry pi technical documentation
Raspberry pi technical documentationGR Techno Solutions
 
Aewin network security appliance network management platform_scb8970
Aewin network security appliance network management platform_scb8970Aewin network security appliance network management platform_scb8970
Aewin network security appliance network management platform_scb8970Sirena Cheng
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boardsLF Events
 

Ähnlich wie Parallel Rendering of Webpages (20)

Asus Tinker Board
Asus Tinker BoardAsus Tinker Board
Asus Tinker Board
 
Baking a Raspberry PI with Chef Rob
Baking a Raspberry PI with Chef RobBaking a Raspberry PI with Chef Rob
Baking a Raspberry PI with Chef Rob
 
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
 
Raspberry Pi Introduction
Raspberry Pi IntroductionRaspberry Pi Introduction
Raspberry Pi Introduction
 
Multipilot pres-ufficiale def
Multipilot pres-ufficiale defMultipilot pres-ufficiale def
Multipilot pres-ufficiale def
 
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
 
uCluster
uClusteruCluster
uCluster
 
Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
Microcontroller from basic_to_advanced
Microcontroller from basic_to_advancedMicrocontroller from basic_to_advanced
Microcontroller from basic_to_advanced
 
Single chip computer for iot application
Single chip computer for iot application Single chip computer for iot application
Single chip computer for iot application
 
Fixed-point Multi-Core DSP Platform
Fixed-point Multi-Core DSP PlatformFixed-point Multi-Core DSP Platform
Fixed-point Multi-Core DSP Platform
 
Using IT Equipment in Live Broadcast
Using IT Equipment in Live BroadcastUsing IT Equipment in Live Broadcast
Using IT Equipment in Live Broadcast
 
Single board computer options
Single board computer optionsSingle board computer options
Single board computer options
 
Presentacion_p1.pdf
Presentacion_p1.pdfPresentacion_p1.pdf
Presentacion_p1.pdf
 
An Overview on Programmable System on Chip: PSoC-5
An Overview on Programmable System on Chip: PSoC-5An Overview on Programmable System on Chip: PSoC-5
An Overview on Programmable System on Chip: PSoC-5
 
2015 02 28 DotNetSpain IoT Fight
2015 02 28 DotNetSpain IoT Fight2015 02 28 DotNetSpain IoT Fight
2015 02 28 DotNetSpain IoT Fight
 
Raspberry pi technical documentation
Raspberry pi technical documentationRaspberry pi technical documentation
Raspberry pi technical documentation
 
Aewin network security appliance network management platform_scb8970
Aewin network security appliance network management platform_scb8970Aewin network security appliance network management platform_scb8970
Aewin network security appliance network management platform_scb8970
 
A2 e overview
A2 e overviewA2 e overview
A2 e overview
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
 

Mehr von Langtech

nava-tmp.pdf
nava-tmp.pdfnava-tmp.pdf
nava-tmp.pdfLangtech
 
Phrasal Verbs - Star Wars Episode VII - the Force Awakens
Phrasal Verbs - Star Wars Episode VII - the Force AwakensPhrasal Verbs - Star Wars Episode VII - the Force Awakens
Phrasal Verbs - Star Wars Episode VII - the Force AwakensLangtech
 
Phrasal Verbs - Star Wars Episode VI - Return of the Jedi
Phrasal Verbs - Star Wars Episode VI -  Return of the JediPhrasal Verbs - Star Wars Episode VI -  Return of the Jedi
Phrasal Verbs - Star Wars Episode VI - Return of the JediLangtech
 
Phrasal Verbs - Star Wars Episode V - the Empire Strikes Back
Phrasal Verbs - Star Wars Episode V -  the Empire Strikes BackPhrasal Verbs - Star Wars Episode V -  the Empire Strikes Back
Phrasal Verbs - Star Wars Episode V - the Empire Strikes BackLangtech
 
Phrasal Verbs - Star Wars Episode IV - a New Hope
Phrasal Verbs - Star Wars Episode IV - a New HopePhrasal Verbs - Star Wars Episode IV - a New Hope
Phrasal Verbs - Star Wars Episode IV - a New HopeLangtech
 
Phrasal Verbs - Star Wars Episode III - Revenge of the Sith
Phrasal Verbs - Star Wars Episode III -  Revenge of the SithPhrasal Verbs - Star Wars Episode III -  Revenge of the Sith
Phrasal Verbs - Star Wars Episode III - Revenge of the SithLangtech
 
Phrasal Verbs - Star Wars Episode II - Attack of the Clones
Phrasal Verbs - Star Wars Episode II - Attack of the ClonesPhrasal Verbs - Star Wars Episode II - Attack of the Clones
Phrasal Verbs - Star Wars Episode II - Attack of the ClonesLangtech
 
Phrasal Verbs - Star Wars Episode I - The Phantom Menace
Phrasal Verbs -  Star Wars Episode I - The Phantom MenacePhrasal Verbs -  Star Wars Episode I - The Phantom Menace
Phrasal Verbs - Star Wars Episode I - The Phantom MenaceLangtech
 
Verbocean I (abandon - devote)
Verbocean I (abandon - devote)Verbocean I (abandon - devote)
Verbocean I (abandon - devote)Langtech
 
Verbocean II (devour - lead)
Verbocean II (devour - lead)Verbocean II (devour - lead)
Verbocean II (devour - lead)Langtech
 
Verbocean III (league - restock)
Verbocean III (league - restock)Verbocean III (league - restock)
Verbocean III (league - restock)Langtech
 
Verbocean IV (restore - zone)
Verbocean IV (restore - zone)Verbocean IV (restore - zone)
Verbocean IV (restore - zone)Langtech
 
Common Business Nouns
Common Business NounsCommon Business Nouns
Common Business NounsLangtech
 
Common Business Nouns
Common Business NounsCommon Business Nouns
Common Business NounsLangtech
 
Regular Verbs
Regular VerbsRegular Verbs
Regular VerbsLangtech
 
Phrasal Verbs
Phrasal VerbsPhrasal Verbs
Phrasal VerbsLangtech
 

Mehr von Langtech (20)

nava-tmp.pdf
nava-tmp.pdfnava-tmp.pdf
nava-tmp.pdf
 
Phrasal Verbs - Star Wars Episode VII - the Force Awakens
Phrasal Verbs - Star Wars Episode VII - the Force AwakensPhrasal Verbs - Star Wars Episode VII - the Force Awakens
Phrasal Verbs - Star Wars Episode VII - the Force Awakens
 
Phrasal Verbs - Star Wars Episode VI - Return of the Jedi
Phrasal Verbs - Star Wars Episode VI -  Return of the JediPhrasal Verbs - Star Wars Episode VI -  Return of the Jedi
Phrasal Verbs - Star Wars Episode VI - Return of the Jedi
 
Phrasal Verbs - Star Wars Episode V - the Empire Strikes Back
Phrasal Verbs - Star Wars Episode V -  the Empire Strikes BackPhrasal Verbs - Star Wars Episode V -  the Empire Strikes Back
Phrasal Verbs - Star Wars Episode V - the Empire Strikes Back
 
Phrasal Verbs - Star Wars Episode IV - a New Hope
Phrasal Verbs - Star Wars Episode IV - a New HopePhrasal Verbs - Star Wars Episode IV - a New Hope
Phrasal Verbs - Star Wars Episode IV - a New Hope
 
Phrasal Verbs - Star Wars Episode III - Revenge of the Sith
Phrasal Verbs - Star Wars Episode III -  Revenge of the SithPhrasal Verbs - Star Wars Episode III -  Revenge of the Sith
Phrasal Verbs - Star Wars Episode III - Revenge of the Sith
 
Phrasal Verbs - Star Wars Episode II - Attack of the Clones
Phrasal Verbs - Star Wars Episode II - Attack of the ClonesPhrasal Verbs - Star Wars Episode II - Attack of the Clones
Phrasal Verbs - Star Wars Episode II - Attack of the Clones
 
Phrasal Verbs - Star Wars Episode I - The Phantom Menace
Phrasal Verbs -  Star Wars Episode I - The Phantom MenacePhrasal Verbs -  Star Wars Episode I - The Phantom Menace
Phrasal Verbs - Star Wars Episode I - The Phantom Menace
 
Verbocean I (abandon - devote)
Verbocean I (abandon - devote)Verbocean I (abandon - devote)
Verbocean I (abandon - devote)
 
Verbocean II (devour - lead)
Verbocean II (devour - lead)Verbocean II (devour - lead)
Verbocean II (devour - lead)
 
Verbocean III (league - restock)
Verbocean III (league - restock)Verbocean III (league - restock)
Verbocean III (league - restock)
 
Verbocean IV (restore - zone)
Verbocean IV (restore - zone)Verbocean IV (restore - zone)
Verbocean IV (restore - zone)
 
Sound
SoundSound
Sound
 
Common Business Nouns
Common Business NounsCommon Business Nouns
Common Business Nouns
 
Touch
TouchTouch
Touch
 
Smell
SmellSmell
Smell
 
Sight
SightSight
Sight
 
Common Business Nouns
Common Business NounsCommon Business Nouns
Common Business Nouns
 
Regular Verbs
Regular VerbsRegular Verbs
Regular Verbs
 
Phrasal Verbs
Phrasal VerbsPhrasal Verbs
Phrasal Verbs
 

Kürzlich hochgeladen

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Kürzlich hochgeladen (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Parallel Rendering of Webpages

  • 1. Parallel Rendering of Webpages An approach based on Python and a Cluster of Single Board Computers (SBCs)
  • 2. Introduction ▪ This presentation describes the hardware and software environment for experimenting with the Parallel Rendering of Webpages; ▪ The hardware consists of a cluster of single board computers (SBCs) which run a number of application servers that previously ran in the cloud (RHC and Pythonanywhere). Each application server was associated with a single application which was either available online or installed on a mobile device; ▪ The cluster described here has 50 cores plus 16 Epiphany cores. A web server runs on each of the 50 cores. Two servers, running on the Parallella, have access to the 16 Epiphany cores; ▪ The software for rendering webpages, consists of a single library - the Parallel Template Library. 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 2
  • 3. Advantages of the Parallel Rendering of Webpages ▪ An unexpected advantage is that designing applications to run on a cluster improved the structure of the final code. ▪ Writing reusable code is a lot easier and in line with the original philosophy behind UNIX (https://en.wikipedia.org/wiki/Unix_philosophy). ▪ The code can run on a single node so creating low cost products is still possible. ▪ Development times are reduced because software components are less complex and their deployment easier to manage. ▪ The system can be scaled and managed easily. 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 3
  • 4. The UNIX philosophy ▪ Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features". ▪ Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input. ▪ Design and build software, even operating systems, to be tried early, ideally within weeks (days). Don't hesitate to throw away the clumsy parts and rebuild them. ▪ Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them. Doug McIlroy, E. N. Pinson, B. A. Tague (8 July 1978). "Unix Time-Sharing System: Foreword" . The Bell System Technical Journal. Bell Laboratories. pp. 1902–1903. 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 4
  • 6. Main System Components ▪ Architecture ▪ Communication ▪ Programming 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 6
  • 8. System Architecture Wifi/LAN Network Switch Parrallella SB 2 Computer SB n+1 SB 8 Network Switch Control Node 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 8
  • 9. • Wifi router (ISP) • Switch (TP-Link) • Control Node • ASUS tinker board (Linaro Debian) • Single Board (SB) Computers • Raspberry pi (Raspbian) • Ordroid C1+ (Odrobian) • Odroid C2 (Ubuntu) • Orange pi pc (Armbian) • Banana pi (Bananian) • Nano pi M2, • Parallella 16 (Linaro Debian) System Architecture - components 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 9
  • 10. System Architecture - Communication openssh Samba/NFS Python 2.7 Mico- web Frameworks 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 10
  • 11. The Software stack Application PRW Libraries Bottle, Waitress, Socketserver and Jina2 The minimum number of Python packages needed to get started are Bottle, Waitress and Jinja2 System Architecture - software 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 11
  • 13. Asus tinker board 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 13 • 2GB dual-channel LPDDR3 memory • Gigabit LAN and Bluetooth 4.0 + EDR connectivity • 802.11 b/g/n Wi-Fi • Four USB 2.0 ports • 40-pin internal header with 28 GPIO pins • Contact points for PWM and S/PDIF signals • 3.5mm audio jack connection • CSI port for camera connection • DSI port supporting HD resolution • HDMI 2.0 port with 4K-resolution support • MicroSD port supporting UHS-I card speed • Supports Debian OS with Kodi • 5V/2A Micro-USB power supply (not included)
  • 14. Odroid c2 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 14 • Amlogic ARM® Cortex®-A53(ARMv8) 1.5Ghz quad core CPUs • Mali™-450 GPU (3 Pixel-processors + 2 Vertex shader processors) • 2Gbyte DDR3 SDRAM • Gigabit Ethernet • HDMI 2.0 4K/60Hz display • H.265 4K/60FPS and H.264 4K/30FPS capable VPU • 40pin GPIOs + 7pin I2S • eMMC5.0 HS400 Flash Storage slot • UHS-1 SDR50 MicroSD Card slot • USB 2.0 Host x 4, USB OTG x 1 (power + data capable) • Infrared(IR) Receiver • Ubuntu 16.04 or Android 5.1 Lollipop based on Kernel 3.14LTS
  • 15. Raspberry pi 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 15 • SoC: Broadcom BCM2837 • CPU: 4× ARM Cortex-A53, 1.2GHz • GPU: Broadcom VideoCore IV • RAM: 1GB LPDDR2 (900 MHz) • Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless • Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy • Storage: microSD • GPIO: 40-pin header, populated • Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)
  • 16. Banana pi 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 16 • SoC – Allwinner A31s quad core Cortex A7 @ 1.0 GHz with PowerVR SGX544MP2 GPU • System Memory – 1GB DDR3 • Storage – Micro SD slot up to 64GB • Connectivity – 10/100/1000 Ethernet, 802.11 b/g/n Wi- Fi (Realtek) • Video Output – HDMI, CVBS, and LVDS/RGB header • Audio Output – HDMI and 3.5mm stereo jack • Camera – CSI connector • USB – 2x USB 2.0 host ports + micro USB port (power only) • Debugging – UART pins for serial console • Expansion Header – 40-pin R-Pi “somewhat” compatible header with 2×13 UART, I2C bus, SPI bus, CAN bus, ADC, PWM, 3.3V, 5V, ground • Misc – IR Receiver, power, reboot and reset buttons. • Power Supply – 5V in via MicroUSB (DC in only)
  • 17. Odroid c1+ 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 17 • Amlogic ARM® Cortex®-A5(ARMv7) 1.5Ghz quad core CPUs • Mali™-450 MP2 GPU (OpenGL ES 2.0/1.1 enabled for Linux and Android) • 1Gbyte DDR3 SDRAM • Gigabit Ethernet • 40pin GPIOs + 7pin I2S • eMMC4.5 HS200 Flash Storage slot • UHS-1 SDR50 MicroSD Card slot • USB 2.0 Host x 4, USB OTG x 1 (power + data capable) • Infrared(IR) Receiver • Ubuntu or Android OS
  • 18. Orange pi pc 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 18 • SoC – Allwinner H3 quad core Cortex A7 @ 1.3 GHz with ARM Mali-400MP2 GPU up to 600 MHz • System Memory – 1GB DDR3 • Storage – 8GB eMMC flash + micro SD card slot • Video Output – HDMI with CEC, AV port • Audio I/O – HDMI, AV port, on-board microphone • Connectivity – 10/100M Ethernet, 802.11 b/g/n WiFi with external antenna • USB – 3x USB 2.0 host ports, 1x micro USB OTG port • Camera – CSI Interface • Expansions – 40-pin Raspberry Pi compatible header with 28 GPIOs, UART, I2C, SPI, PWM, CAN, I2S, SPDIF, LRADC, ADC, LINE-IN, FM-IN, and HP-IN • Debugging – 3-pin UART header for serial console • Misc – IR receiver; Power button; Power and status LEDs • Power Supply – 5V/2A via barrel jack (micro USB OTG cannot be used to power the board).
  • 19. Nanopi M1 ▪ CPU: Allwinner H3, Quad-core Cortex-A7@1.2GHz ▪ GPU: Mali400MP2@600MHz,Supports OpenGL ES2.0 ▪ DDR3 RAM:512MB/1GB ▪ Connectivity: 10/100M Ethernet ▪ Audio: 3.5mm audio jack/Via HDMI ▪ Microphone: Onboard microphone ▪ IR Receiver: Onboard IR receiver ▪ USB Host:Type A, USB 2.0 x 3 ▪ MicroSD Slot x 1 ▪ MicroUSB: for data transmission and power input, OTG ▪ Video Output: HDMI 1.4 1080P, CVBS ▪ DVP Camera Interface: 24pin, 0.5mm pitch FPC seat ▪ User Key: Power LED x 1, Reset x 1 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 19
  • 20. Nanopi M3 ▪ SoC: Samsung S5P6818 Octa-Core Cortex-A53, 400M Hz - 1.4G Hz ▪ Power Management Unit: AXP228 PMU, it supports software power-off and wake-up. ▪ System Memory: 1GB 32bit DDR3 RAM ▪ Storage: 1 x MicroSD Card Socket ▪ Ethernet: Gbit Ethernet(RTL8211E) ▪ WiFi: 802.11b/g/n ▪ Bluetooth: 4.0 dual mode ▪ Antenna: Porcelain Antenna IPX Interface ▪ Audio: 3.5 mm audio jack / via HDMI ▪ I2S: 7pin, 2.54mm pitch pin-header ▪ Microphone: onboard Microphone ▪ USB Host: 4 x USB 2.0 Host, two type A ports and two 2.54 mm pitch pin-headers ▪ MicroUSB: 1 x MicroUSB 2.0 Client, Type A ▪ LCD Interface: 0.5mm pitch 45 pin FPC seat, full color RGB 8-8-8 ▪ HDMI: 1.4A Type A, 1080P ▪ LVDS: 20pin 2.00mm pitch pin-header ▪ DVP Camera: 0.5mm pitch 24 pin FPC seat ▪ User Key: K1 (power), Reset ▪ LED: 1 x power LED and 1 x status LED 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 20
  • 21. Nanopc T3 ▪ SoC: Samsung S5P6818 Octa-Core Cortex-A53, 400M Hz - 1.4G Hz ▪ Power Management Unit: AXP228 PMU, it supports software power-off and wake-up. ▪ System Memory: 1GB/2GB 32bit DDR3 RAM ▪ Storage: 1 x SD Card Socket ▪ Ethernet: Gbit Ethernet(RTL8211E) ▪ WiFi: 802.11b/g/n ▪ Bluetooth: 4.0 dual mode ▪ Antenna: Porcelain Antenna IPX Interface ▪ eMMC: 8GB ▪ Video Input: DVP Camera/MIPI-CSI (two camera interfaces) ▪ Video Output: HDMI Type-A / LVDS / Parallel RGB-LCD / MIPI-DSI (four video output interfaces) ▪ Audio: 3.5 mm audio jack / via HDMI ▪ Microphone: onboard Microphone ▪ USB Host: 4 x USB 2.0 Host, two type A ports and two 2.54 mm pitch pin-headers ▪ MicroUSB: 1 x MicroUSB 2.0 Client, Type A ▪ LCD Interface: 0.5mm pitch 45 pin FPC seat, full color RGB 8-8-8 ▪ HDMI: 1.4A Type A, 1080P ▪ DVP Camera: 0.5mm pitch 24 pin FPC seat ▪ GPIO: 2.54 mm pitch 30 pin-header ▪ Serial Debug Port: 2.54mm pitch 4-pin-header ▪ User Key: K1 (power), Reset ▪ LED: 1 x power LED and 2 x GPIO LED 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 21
  • 22. Parallella 16 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 22 • 18-core credit card sized computer • #1 in energy efficiency @ 5W • 16-core Epiphany RISC SOC • Zynq SOC (FPGA + ARM A9) • Gigabit Ethernet • 1GB SDRAM • Micro-SD storage • Up to 48 GPIO pins • HDMI, USB (optional)
  • 24. Tinker OS A debian distribution driven by the Linaro arm ecosystem and downloadable fomr the ASUS tinker board product page https://www.asus.com/uk/Single-board-Computer/TINKER-BOARD/ 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 24
  • 25. Ubuntu for Odroid c2 An Ubuntu Mate distribution downloadable from Hardkernel’s wiki: http://odroid.com/dokuwiki/doku.php?id=en:odroid-c2 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 25
  • 26. Odrobian for c1+ ODROBIAN is a pure, clean and lightweight Debian community distribution built specifically for ODROID single board computers. The project is about getting the best experience out of Linux built upon Debian for ODROIDs, since there ain't any official images for this particular platform while it's mostly known for stability over ubuntu, the main goal is to represent a perfectly working OS with the least issues possible, hopefully. http://oph.mdrjr.net/odrobian/images/s805/ 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 26
  • 27. Armbian for the Orange pi pc A lightweight Debian Jessie or Ubuntu Xenial based Linux distribution. https://www.armbian.com/orange-pi-pc/ 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 27
  • 28. Bananian Bananian Linux is a pre-installed Debian 8 image optimized for Banana Pi/Pro. It uses the official Debian Jessie armhf repositories with a kernel and bootmanager (u-boot), customized for Banana Pi/Pro. A Debian 7/Wheezy image (Bananian 15.04) is also available and maintained. We support the Banana Pi (M1, M1+), Banana Pro and BPI-R1 with just one single image. A separate image for the Banana Pi M2 is also available. https://www.bananian.org/bananapi-m2 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 28
  • 29. Parabuntu (linaro) An Ubuntu distribution driven by the Linaro arm ecosystem and downloadable from their company website: https://www.parallella.org/quick-start/ Parabuntu is the recommended Linux distribution which contains the firmware for Parallella boards. 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 29
  • 31. Parallel Template Library • The Parallel Template Library (PRTL) is based on a very simple idea – let the variable names to the work. Within a template, the node where the content for a particular page component is generated is specified by the variable name. Variable names within the template translate into a web address. For instance this code <h2>Crossword</h2> <div class="wrapper">{{realtime_P1_V_cp}}</div> tells the Parallel Template Library to obtain the content from: http://realtime:4001/cp • A variable is encoded in this way: <hostname><port>_V_<method> • For this example, all port addresses are offset by 4000 • The PTL is essentially a preprocessor which finds variables referencing remote content and then returns the fetched content. 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 31
  • 32. 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 32 Example Application – Python server code
  • 33. Example Application - Jinja2 Template
  • 34. Applications built with the Parallel Template Library Offline content generation
  • 35. Offline media library and realtime teaching tools 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 35 • The offline media library runs on an SBC cluster or single SBC such as the raspberry pi and allows users to view content from Wikipedia, TED and Project Gutenberg without having an internet connection. • Users can also generate tests and word games based on viewed content. • The parallel Template Library was used to combine the functionality of the existing applications described above to create this app.
  • 36. Summary A real-time tool for teachers and students alike – a synthesis of software and SBs
  • 37. Developing apps to run on SBC clusters 5/10/2017Andrew Ritz - ©Langtech, Katowice, Poland 37 The parallel rendering of Webpages facilitates the creation of new applications from existing ones without having to write too much code. This is because the PTL allows new applications to be designed and created by combining together the functionality of a large number of dedicated web servers for the creation of new apps.