Controlling embedded hardware Erlang in global radio astronomy Harro Verkouter/Joint Institute for VLBI in Europe.

Slides:



Advertisements
Similar presentations
Snejina Lazarova Senior QA Engineer, Team Lead CRMTeam Dimo Mitev Senior QA Engineer, Team Lead SystemIntegrationTeam Telerik QA Academy SOAP-based Web.
Advertisements

Technical Aids for Mirroring Sites and China Popular Science Exhibition(CPSE) Chen Hui CNIC,CAS (Computer Network Information Center, Chinese Academy of.
EEC-484/584 Computer Networks Lecture 6 Wenbing Zhao
The Internet Useful Definitions and Concepts About the Internet.
EEC-484/584 Computer Networks Discussion Session for HTTP and DNS Wenbing Zhao
HTML Form Processing Learning Web Design – Chapter 9, pp Squirrel Book – Chapter 11, pp
Creating WordPress Websites. Creating a site on your computer Local server Local WordPress installation Setting Up Dreamweaver.
Jacob Boston Josh Pfeifer. Definition of HyperText Transfer Protocol How HTTP works How Websites work GoDaddy.com OSI Model Networking.
Data Communications and Networks
Mapping Internet Addresses to Physical Addresses (ARP)
1 Network Statistic and Monitoring System Wayne State University Division of Computing and Information Technology Information Technology.
NETWORK CENTRIC COMPUTING (With included EMBEDDED SYSTEMS)
Web Servers Web server software is a product that works with the operating system The server computer can run more than one software product such as .
Computing for Bioinformatics Introduction to databases What is a database? Database system components Data types DBMS architectures DBMS systems available.
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
Dynamic Web Pages (Flash, JavaScript)
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
9/15/2015© 2008 Raymond P. Jefferis IIILect Application Layer.
CINEMA’s UbiComp Subsystem Stefan Berger and Henning Schulzrinne Department of Computer Science Columbia University
Wyatt Pearsall November  HyperText Transfer Protocol.
Information & Decision Management Dept West Texas A&M University
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat.
SPACE TELESCOPE SCIENCE INSTITUTE Operated for NASA by AURA COS Pipeline Language(s) We plan to develop CALCOS using Python and C Another programming language?
COMP 321 Week 7. Overview HTML and HTTP Basics Dynamic Web Content ServletsMVC Tomcat in Eclipse Demonstration Lab 7-1 Introduction.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
GBT Interface Card for a Linux Computer Carson Teale 1.
Dynamic Content On Edge Cache Server (using Microsoft.NET) Name: Aparna Yeddula CS – 522 Semester Project Project URL: cs.uccs.edu/~ayeddula/project.html.
MET280: Computing for Bioinformatics Introduction to databases What is a database? Not a spreadsheet. Data types and uses DBMS (DataBase Management System)
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
ECE200 – Computer Organization Chapter 9 – Multiprocessors.
Software Status Sonja Vrcic Socorro,
A Brief Documentation.  Provides basic information about connection, server, and client.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 8 Omar Meqdadi Department of Computer Science and Software Engineering University of.
1 Presented By: Eyal Enav and Tal Rath Eyal Enav and Tal Rath Supervisor: Mike Sumszyk Mike Sumszyk.
Windows Azure Virtual Machines Anton Boyko. A Continuous Offering From Private to Public Cloud.
Saving State on the WWW. The Issue  Connections on the WWW are stateless  Every time a link is followed is like the first time to the server — it has.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
1 MSRBot Web Crawler Dennis Fetterly Microsoft Research Silicon Valley Lab © Microsoft Corporation.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Proposal for an Open Source Flash Failure Analysis Platform (FLAP) By Michael Tomer, Cory Shirts, SzeHsiang Harper, Jake Johns
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Renesas Electronics America Inc. © 2010 Renesas Electronics America Inc. All rights reserved. Overview of Ethernet Networking A Rev /31/2011.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
Lemon Tutorial Sensor How-To Miroslav Siket, Dennis Waldron CERN-IT/FIO-FD.
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
Erlang Functional programming for real-world applications.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
MapReduce: Simplied Data Processing on Large Clusters Written By: Jeffrey Dean and Sanjay Ghemawat Presented By: Manoher Shatha & Naveen Kumar Ratkal.
Communicating with UniBoard Harro Verkouter/JIVE.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
UniBoard review September 2014
1 Building Web-base SIP Analyzer with Ajax Approach Yan-Hsiang Wang & Dr. Quincy Wu National Chi Nan University Graduate Institute of CSIE
Lecture 3 – MapReduce: Implementation CSE 490h – Introduction to Distributed Computing, Spring 2009 Except as otherwise noted, the content of this presentation.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
WWW and HTTP King Fahd University of Petroleum & Minerals
z/Ware 2.0 Technical Overview
A framework for building real-world applications
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Camtool - monitoring realtime information
Web Caching? Web Caching:.
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
PHP / MySQL Introduction
Dynamic Web Pages (Flash, JavaScript)
Introduction to Opnet Mobile Networks Introduction to Opnet
Database Driven Websites
Introduction to computers
MapReduce: Simplified Data Processing on Large Clusters
Web Application Development Using PHP
Presentation transcript:

Controlling embedded hardware Erlang in global radio astronomy Harro Verkouter/Joint Institute for VLBI in Europe

Joint Institute for VLBI in Europe Very Long Baseline Interferometry Very Long Baseline Interferometry

Ever larger telescopes 15cm 5m 100m

Electromagnetic radiation

(m) D (m) /D (rad) smallest optical biggest radio wavelengthdiameterpixelsize

A neat trick 100m

A neat trick 100m 20m  correlator

10,000km

A different ball game! (m) D (m) /D (rad) largest optical (IR) VLBI (radio)

Science

Recording the data Record up to 4096 Mbps (512 Mbyte/s)

Number of combinations to be computed as function of n ~n 2

16 telescopes at 1024 Mbps

UniBoard 4 frontnode 4 backnode 1Gbit/s ethernet 16x 10Gbps >20 Gbps/link

Erlang?! typical languages used –80% C++ –15% Python –PHP, Fortran, perl database –MySQL needed to convince management –pilot projects!

Decoding data files VLBI has framed data format(s) Look for ‘syncword’ –different flavours, same syncword, different framesize Other format uses different syncword

(not quite) surprising little code 212 lines of code –first dabblings... about a week’s work recognizes + decodes 3 formats decodes the BCD timestamps supports distributed system –reading file on one machine –decoding on other machine management duely impressed –got permission to do a larger pilot!

Soft real time monitoring website webcams at stations –webpage with http links = #FAIL –unreliable links really high latency (China, Chile) don’t want broken images –low bandwidth cache in Europe: multiple users eat all bandwidth parse telescope logfiles –immediate antenna calibration info –generate timeseries plots as observation progresses stored in MySQL

Soft real time monitoring website webcam URLs + status stored in MySQL –supervisor starts webcam monitors one gen_server for each webcam –loads info from MySQL –uses –strict checking on return value only HTTP 200 status replies content_length header set? explode if problem –use a port to ImageMagick to scale image –write binary JPEG data into mnesia

Soft real time monitoring website monitor all participating telescopes telescope log file (ASCII text) –retrieved via python + ssh –read into Erlang using a port –low data rate after start up parses lines –update MySQL generate plots using gnuplot –for each telescope –query MySQL every so many minutes –using a port –write. png binary data to mnesia

Soft real time monitoring website patch it all together using webtool cache complete webpage in mnesia –too old? generate new one serve.png and.jpg data from mnesia –image URL points back to webtool extremely simple to cache + serve data –brilliant idea: mapping URL to erlang fn call! in total used ~3000 lines of code –webcam, logfile monitoring; plotting; serving web pages –excellent test case for OTP and distributed system got the green light for the real thing!

UniBoard EthernetSwitch FPGA Nios2 CPU 1Gbit PHY FPGA Nios2 CPU 1Gbit PHY FPGA Nios2 CPU 1Gbit PHY FPGA Nios2 CPU 1Gbit PHY Control Computer windows/unix EthernetSwitch VHDL Hardware Software

FPGA 1Gbit PHY VHDL Hardware Software Polyphase Filterbank registers Delay Module registers Nios2 CPU registers

VHDL Hardware Software Control Computer windows/unix Nios2 CPU Client Server UDP/IPv4 over ethernet

Simple binary protocol Read N 32bit words starting from START ADDRESS (Over)Write N 32bit words from the packet to START ADDRESS Read/Modify/Write N 32bit words from START ADDRESS + packet to START ADDRESS

FPGA client library Registermap: list of register definitions type of the register (details follow) name of the register (symbolic) address of the register in the memory map one controller  one fpga

FPGA client library fpga:bit(,, ) fpga:bitrange(,,, ) fpga:word(, ) fpga:range(,, ) Available registerdefinition types for the controller

FPGA client library fpga:read( ) fpga:write(, ) fpga:or_(, ) fpga:and_(, ) fpga:xor_(, ) Available register commands

Example -module(firfilter). % this module is called firfilter, driving one of those -behaviour(personality). -export([registers/0, start_filter/2]). % this module implements an FPGA personality % Called automatically by the FPGA control framework registers() -> {ok, [ fpga:bitrange(num_tap, 5, 3, 16#24), fpga:bit(pps_enable, 28, 16#24), fpga:word(control_status, 16#abcc), ]. % define a high-level command for this personality start_filter(FPGA, NumTap) -> % disable the PPS fpga:execute(FPGA, fpga:write(pps_enable, 0)), % read the control status register case fpga:execute(FPGA, fpga:read(control_status)) of 1 -> fpga:execute(FPGA, fpga:xor(control_status, 42)); _ -> ok end, % however, you can easily execute a number of commands in one go: fpga:execute(FPGA, [fpga:write(num_tap, NumTap), fpga:write(pps_enable, 1)]).

Safety 2> fpga:execute(FPGA, fpga:write(pps_enable, 2)). OH NOES! error:"Value '2' does not fit in one bit (pps_enable)" FPGAControl terminating [{{badmatch, {reply, {error, {"Value '2' does not fit in one bit (pps_enable)", [{fpga,err,2, [{fil

Full correlator control system besides single fpga control –parallel control of eight fpga’s parsing + validating configuration files –using yecc decoding + sending over UDP of binary data files –data as well as polynomial coefficients capture network data to file configure and control the hardware MySQL read/write two weeks VHDL coding = < 1 day Erlang coding

data reader data writer UniBoard command/control Full correlator control system

The good cross platform –we have Linux, Mac OSX and Solaris distributed –typically many machines involved non-variability of ‘variables’ conciseness / amount of work per LOC connects to MySQL –not easy to connect other languages to mnesia hard crash on errors –about the most valuable property: can’t ignore! binary pattern matching –every language should be jealous of this re-use of development/testing code –it’s so easy to re-use code!

The bad our VHDL engineers struggle –language simple, but –concepts like recursion + distribution are ‘hard’ conciseness / amount of work per LOC –takes effort to read code written by someone who’s better at it than you deploying a developing distributed system –we haven’t found a simple way yet –dynamic remote code loading could be awsome it works for individual modules useless if you have dynamic dependencies... –erlang:apply/3

Thank you for your attention!