Reframe Documentation Release 3.8.2

Total Page:16

File Type:pdf, Size:1020Kb

Reframe Documentation Release 3.8.2 ReFrame Documentation Release 3.8.2 CSCS Sep 22, 2021 TABLE OF CONTENTS 1 Use Cases 3 2 Publications 5 2.1 Getting Started..............................................5 2.2 ReFrame Tutorials............................................7 2.3 Configuring ReFrame for Your Site................................... 90 2.4 Advanced Topics............................................. 104 2.5 Use Cases................................................. 118 2.6 Migrating to ReFrame 3......................................... 121 2.7 ReFrame Manuals............................................ 124 Python Module Index 237 Index 239 i ii ReFrame Documentation, Release 3.8.2 ReFrame is a high-level framework for writing regression tests for HPC systems. The goal of the framework is to abstract away the complexity of the interactions with the system, separating the logic of a regression test from the low- level details, which pertain to the system configuration and setup. This allows users to write easily portable regression tests, focusing only on the functionality. Regression tests in ReFrame are simple Python classes that specify the basic parameters of the test. The framework will load the test and will send it down a well-defined pipeline that will take care of its execution. The stages of this pipeline take care of all the system interaction details, such as programming environment switching, compilation, job submission, job status query, sanity checking and performance assessment. ReFrame also offers a high-level and flexible abstraction for writing sanity and performance checks for your regression tests, without having to care about the details of parsing output files, searching for patterns and testing against reference values for different systems. Writing system regression tests in a high-level modern programming language, like Python, poses a great advantage in organizing and maintaining the tests. Users can create their own test hierarchies or test factories for generating multiple tests at the same time and they can also customize them in a simple and expressive way. Finally, ReFrame offers a powerful and efficient runtime for running and managing the execution of tests, as well as integration with common logging facilities, where ReFrame can send live data from currently running performance tests. TABLE OF CONTENTS 1 ReFrame Documentation, Release 3.8.2 2 TABLE OF CONTENTS CHAPTER ONE USE CASES A pre-release of ReFrame has been in production at the Swiss National Supercomputing Centre since early December 2016. The first public release was in May 2017 and it is being actively developed since then. Several HPC cen- ters around the globe have adopted ReFrame for testing and benchmarking their systems in an easy, consistent and reproducible way. You can read a couple of use cases here. 3 ReFrame Documentation, Release 3.8.2 4 Chapter 1. Use Cases CHAPTER TWO PUBLICATIONS • Slides [pdf]@ 6th EasyBuild User Meeting 2021. • Slides [pdf]@ 5th EasyBuild User Meeting 2020. • Slides [pdf]@ HPC System Testing BoF, SC’19. • Slides [pdf]@ HUST 2019, SC’19. • Slides [pdf]@ HPC Knowledge Meeting ‘19. • Slides [pdf]& Talk@ FOSDEM’19. • Slides [pdf]@ 4th EasyBuild User Meeting. • Slides [pdf]@ HUST 2018, SC’18. • Slides [pdf]@ CSCS User Lab Day 2018. • Slides [pdf]@ HPC Advisory Council 2018. • Slides [pdf]@ SC17. • Slides [pdf]@ CUG 2017. 2.1 Getting Started 2.1.1 Requirements • Python 3.6 or higher. Python 2 is not supported. • The required Python packages are the following: archspec==0.1.2 argcomplete==1.12.3 coverage==5.5 importlib_metadata==4.0.1; python_version<'3.8' jsonschema==3.2.0 lxml==4.6.3 pytest==6.2.3 pytest-forked==1.3.0 pytest-parallel==0.1.0 PyYAML==5.4.1 requests==2.25.1 semver==2.13.0 setuptools==56.0.0 (continues on next page) 5 ReFrame Documentation, Release 3.8.2 (continued from previous page) wcwidth==0.2.5 #+pygelf%pygelf==0.4.0 Note: Changed in version 3.0: Support for Python 3.5 has been dropped. 2.1.2 Getting the Framework Stable ReFrame releases are available through different channels. Spack ReFrame is available as a Spack package: spack install reframe There are the following variants available: • +docs: This will install the man pages of ReFrame. • +gelf: This will install the bindings for handling Graylog log messages. EasyBuild ReFrame is available as an EasyBuild package: eb ReFrame-VERSION.eb -r This will install the man pages as well as the Graylog bindings. PyPI ReFrame is available as a PyPI package: pip install reframe-hpc This is a bare installation of the framework. It will not install the documentation, the tutorial examples or the bindings for handling Graylog log messages. Github Any ReFrame version can be very easily installed directly from Github: pushd /path/to/install/prefix git clone -q --depth1 --branch VERSION_TAG https://github.com/eth-cscs/reframe.git pushd reframe&& ./bootstrap.sh&& popd export PATH=$(pwd)/bin:$PATH popd 6 Chapter 2. Publications ReFrame Documentation, Release 3.8.2 The VERSION_TAG is the version number prefixed by v, e.g., v3.5.0. The ./bootstrap.sh script will fetch ReFrame’s requirements under its installation prefix. It will not set the PYTHONPATH, so it will not affect the user’s Python installation. The ./bootstrap.sh has two additional variant options: • +docs: This will also build the documentation. • +pygelf: This will install the bindings for handling Graylog log messages. Note: New in version 3.1: The bootstrap script for ReFrame was added. For previous ReFrame versions you should install its requirements using pip install -r requirements.txt in a Python virtual environment. 2.1.3 Enabling auto-completion New in version 3.4.1. You can enable auto-completion for ReFrame by sourcing in your shell the corresponding script in <install_prefix>/share/completions/reframe.<shell>. Auto-completion is supported for Bash, Tcsh and Fish shells. Note: Changed in version 3.4.2: The shell completion scripts have been moved under share/completions/. 2.1.4 Where to Go from Here The easiest way to start with ReFrame is to go through Tutorial 1: Getting Started with ReFrame, which will guide you step-by-step in both writing your first tests and in configuring ReFrame. The Configuring ReFrame for Your Site page provides more details on the basic configuration aspects of ReFrame. Advanced Topics explain different aspects of the framework whereas ReFrame Manuals provide complete reference guides for the command line interface, the configuration parameters and the programming APIs for writing tests. 2.2 ReFrame Tutorials 2.2.1 Tutorial 1: Getting Started with ReFrame New in version 3.1. This tutorial will give you a first overview of ReFrame and will acquaint you with its basic concepts. We will start with a simple “Hello, World!” test running with the default configuration and we will expand the example along the way. We will also explore performance tests and port our tests to an HPC cluster. The examples of this tutorial can be found under tutorials/basics/. 2.2. ReFrame Tutorials 7 ReFrame Documentation, Release 3.8.2 Getting Ready All you need to start off with this tutorial is to have installed ReFrame. If you haven’t done so yet, all you need is Python 3.6 and above and to follow the steps below: git clone https://github.com/eth-cscs/reframe.git cd reframe ./bootstrap.sh ./bin/reframe -V We’re now good to go! The “Hello, World!” test As simple as it may sound, a series of “naive” “Hello, World!” tests can reveal lots of regressions in the programming environment of HPC clusters, but the bare minimum of those also serves perfectly the purpose of starting this tutorial. Here is its C version: cat tutorials/basics/hello/src/hello.c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } And here is the ReFrame version of it: cat tutorials/basics/hello/hello1.py import reframe as rfm import reframe.utility.sanity as sn @rfm.simple_test class HelloTest(rfm.RegressionTest): valid_systems=[' *'] valid_prog_environs=[' *'] sourcepath='hello.c' @sanity_function def assert_hello(self): return sn.assert_found(r'Hello, World\!', self.stdout) Regression tests in ReFrame are specially decorated classes that ultimately derive from RegressionTest. The @simple_test decorator registers a test class with ReFrame and makes it available to the framework. The test variables are essentially attributes of the test class and can be defined directly in the class body. Each test must always set the valid_systems and valid_prog_environs attributes. These define the systems and/or system parti- tions that this test is allowed to run on, as well as the programming environments that it is valid for. A programming environment is essentially a compiler toolchain. We will see later on in the tutorial how a programming environment can be defined. The generic configuration of ReFrame assumes a single programming environment named builtin which comprises a C compiler that can be invoked with cc. In this particular test we set both these attributes to ['*'], essentially allowing this test to run everywhere. 8 Chapter 2. Publications ReFrame Documentation, Release 3.8.2 A ReFrame test must either define an executable to execute or a source file (or source code) to be compiled. In this example, it is enough to define the source file of our hello program. ReFrame knows the executable that was produced and will use that to run the test. Finally, every regression test must always decorate a member function as the test’s @sanity_function. This decorated function is converted into a lazily evaluated expression that asserts the sanity of the test. In this particular case, the specified sanity function checks that the executable has produced the desired phrase into the test’s standard output stdout. Note that ReFrame does not determine the success of a test by its exit code. Instead, the assessment of success is responsibility of the test itself. Before running the test let’s inspect the directory structure surrounding it: tutorials/basics/hello hello1.py src hello.c Our test is hello1.py and its resources, i.e., the hello.c source file, are located inside the src/ subdirectory.
Recommended publications
  • FOSDEM 2017 Schedule
    FOSDEM 2017 - Saturday 2017-02-04 (1/9) Janson K.1.105 (La H.2215 (Ferrer) H.1301 (Cornil) H.1302 (Depage) H.1308 (Rolin) H.1309 (Van Rijn) H.2111 H.2213 H.2214 H.3227 H.3228 Fontaine)… 09:30 Welcome to FOSDEM 2017 09:45 10:00 Kubernetes on the road to GIFEE 10:15 10:30 Welcome to the Legal Python Winding Itself MySQL & Friends Opening Intro to Graph … Around Datacubes Devroom databases Free/open source Portability of containers software and drones Optimizing MySQL across diverse HPC 10:45 without SQL or touching resources with my.cnf Singularity Welcome! 11:00 Software Heritage The Veripeditus AR Let's talk about The State of OpenJDK MSS - Software for The birth of HPC Cuba Game Framework hardware: The POWER Make your Corporate planning research Applying profilers to of open. CLA easy to use, aircraft missions MySQL Using graph databases please! 11:15 in popular open source CMSs 11:30 Jockeying the Jigsaw The power of duck Instrumenting plugins Optimized and Mixed License FOSS typing and linear for Performance reproducible HPC Projects algrebra Schema Software deployment 11:45 Incremental Graph Queries with 12:00 CloudABI LoRaWAN for exploring Open J9 - The Next Free It's time for datetime Reproducible HPC openCypher the Internet of Things Java VM sysbench 1.0: teaching Software Installation on an old dog new tricks Cray Systems with EasyBuild 12:15 Making License 12:30 Compliance Easy: Step Diagnosing Issues in Webpush notifications Putting Your Jobs Under Twitter Streaming by Open Source Step. Java Apps using for Kinto Introducing gh-ost the Microscope using Graph with Gephi Thermostat and OGRT Byteman.
    [Show full text]
  • Concurrent Programming Made Simple: the (R)Evolution of Transactional Memory
    Concurrent Programming Made Simple: The (r)evolution of Transactional Memory Nuno Diegues∗1 and Torvald Riegely2 1INESC-ID, Lisbon, Portugal 2Red Hat October 1, 2013 ∗[email protected] [email protected] 1 1 Harnessing Concurrency Today, it is commonplace for developers to deal with concurrency in their applications. This reality has been driven by two ongoing revolutions in terms of hardware deployments. On one hand, processors have evolved to a multi- core paradigm in which computational power increases by increasing number of cores rather than by enhancing single thread performance. On the other hand, cloud computing has democratized the access to affordable large- scale distributed platforms. In both cases programmers are faced with a similar problem: if they want to scale out their applications, then they need to tackle the issue of how to synchronize access to data in face of ever growing concurrency levels. For many decades, programmers have been taught to rely on locking mechanisms or centralized components to manage concurrent accesses to data. However, the ongoing architectural trends towards massively parallel/large- scale systems have unveiled the limitations of traditional synchronization schemes — not only can they significantly limit the feasible parallelism, when there may exist tremendous untapped parallel potential; they also force to use intricate programming models that are prone to tricky concurrency bugs, which can be a conundrum to detect and fix. In fact, popular knowledge considers locking approaches simple to understand, but difficult to master. 2 Programming with Transactions To tackle this fundamental problem in modern software development, during recent years both industry and academia have started to adopt Transactional Memory (TM).
    [Show full text]
  • FOSDEM 2006 – Saturday 25Th February (Part 1) 1/6
    FOSDEM 2006 – Saturday 25th February (part 1) 1/6 10:00 OpenGroupware ▼ Opening Talks Tutorials KDE openSUSE Embedded Mozilla Tcl/Tk 13:00 (Janson) (H2215/Ferrer) (H.1301) (H.1302) (H.1308) (H.1309) +GNUstep (H.2111) (AW1.105) 13:00 lunch break 13:00 Movitation, 13:00 Opening and GNUstep devtools: Goals and 13:15 13:15 introduction GORM, StepTalk Opportunities Axel Hecht Nicolas Roard Systems VoIP 13:30 DTrace S. Krause-Harder, SETR LiveCD 13:30 M. Loeffler (Janson) (Lameere) 13:45 Jon Haslam Hector Oron 13:45 Mozilla 14:00 14:00 Kubuntu openSUSE Build 14:00 Foundation CoreData Intro to Plan9 SER Service Intro 14:15 14:15 Jonathan 14:15 G. Markham Sašo Kiselkov Tcl/Tk Uriel M. Jan Janak A. Schroeter, 14:30 Pereira 14:30 Ridell C. Schumacher, Optimizing 14:30 Mozilla Clif Flynt A. Bauer 14:45 14:45 Linux kernel 14:45 Europe 15:00 15:00 Open SUSE Linux and apps 15:00 Tristan Nitot Web applicationsGUI for DTrace Asterisk M.Opdenacker 15:15 Jon Haslam Mark 15:15 Key Devroom Power Mngmt 15:15 SeaMonkey with SOPE ASIC 15:30 Spencer 15:30 Signing Timo Hoenig, Lock-free data 15:30 Project Marcus Mueller verification 15:45 15:45 Holger Macht exchange for 15:45 Robert Kaiser Karel Nijs Real-Time apps 16:00 16:00 SUSE Linux 16:00 Xen Speex Asterisk Marketing Peter Soetens Flock GNUstep on the Hecl: 10.2: 16:15 Ian Pratt J.-M. Valin 16:15 Mark KDE 16:15 Z. Braniecki Zaurus PDA scripting Quo vadis ? 16:30 16:30 Spencer Sebastian Alsa SoC layer16:30 Nicolaus Schaller for mobiles Kügler M.Loeffler,C.Thiel D.N.Welton 16:45 16:45 Liam Girdwood 16:45 Mozilla 17:00 Closing Talks (Janson) 17:00 17:00 Project BOF 17:15 17:15 17:15 FOSDEM Donators Return 17:30 17:30 17:45 17:45 17:30 FSF Europe Opening Talks (Janson) Hacker Rooms LPI Exam Sessions 10:00 FOSDEM Core Staff Welcome Speech Building H: H2213 Saturday 13:00-14:30 10:30 Keynote Building AW: AW1.117 (H2214) 15:00-16:30 Richard M.
    [Show full text]
  • FOSDEM 2020 Precise, Cross-Project Code Navigation at Github Scale
    FOSDEM 2020 Precise, cross-project code navigation at GitHub scale Douglas Creager — @dcreager February 1, 2020 FOSDEM 2020 Precise, cross-project code navigation at GitHub scale Douglas Creager — @dcreager February 1, 2020 BackBack inin November...November... github.com github.com github.com github.com LimitationsLimitations Only three languages are GA Go Python Ruby (JavaScript, TypeScript, and PHP are in beta; more on the way!) “Fuzzy” (or ctags-like) symbol matching github.com github.com Can only follow links within a repository LimitationsLimitations Takeaways Local development ≠ Hosted service Incremental processing is a must Within-repo = Cross-repo Local development ≠ Hosted service Local development User choice is paramount Context is a single workspace Interactive Local development User choice is paramount Context is a single workspace Interactive LSP Local development User choice is paramount Context is a single workspace Interactive LSP M × N → M + N Long-running sidecar process Maintains long-lived in-memory state Hosted service Lots of simultaneous contexts Looks more like a database Not as interactive ...but latency still counts! Hosted service Lots of simultaneous contexts Looks more like a database Not as interactive ...but latency still counts! Everything is hidden behind an API Hosted service Lots of simultaneous contexts Looks more like a database Not as interactive ...but latency still counts! Everything is hidden behind an API ...and we carry a pager Code generation tree-sitter parser for the language machine-readable description of the generated parser automatically generate AST data types from that grammar description including automatically generated API documentation! pattern-matching rules to pull out the definitions and references some boilerplate but not too bad We can produce fuzzy symbol matches incrementally.
    [Show full text]
  • Schedule: Sunday
    Schedule: Sunday page 2 Main tracks and lightning talks page 3 Devrooms in AW building page 4-5 Devrooms in H building page 5-6 Devrooms in K building page 6-7 Devrooms in U building Latest schedule and mobile apps on https://fosdem.org/schedule/ Compiled on 26/01/2016, see fosdem.org for updates. Page 1 of 12, Sunday Main tracks Main tracks Lightning Talks J.Janson K.1.105 (La Fontaine) H.2215 (Ferrer) 10:00 A New Patchwork Stephen Finucane 10:15 Re-thinking Linux Distributions Free communications with Free Software Buildtime Trend : visualise what’s trending in 10:30 Langdon White Daniel Pocock your build process – Dieter Adriaenssens Learning about software development with 10:45 Kibana dashboards – Jesus M. Gonzalez- Barahona 11:00 coala – Code Analysis Made Simple Lasse Schuirmann 11:15 Building a peer-to-peer network for Real-Time Beyond reproducible builds Communication How choosing the Raft consensus algorithm 11:30 Holger Levsen saved us 3 months of development time – Adrien Béraud, Guillaume Roguez Robert Wojciechowski Keeping your files safe in the post-Snowden 11:45 era with SXFS – Robert Wojciechowski 12:00 Spiffing – Military grade security Dave Cridland 12:15 illumos at 5 Mainflux Layers Box 12:30 Dan McDonald Drasko Draskovic Istvàn Koren FAI – The Universal Installation Tool 12:45 Thomas Lange 13:00 Knot DNS Resolver Ondrejˇ Surý 13:15 RocksDB Storage Engine for MySQL How containers work in Linux Prometheus – A Next Generation Monitoring 13:30 Yoshinori Matsunobu James Bottomley System Brian Brazil Going cross-platform – how htop was made 13:45 portable Hisham Muhammad 14:00 Ralph – Data Center Asset Management Sys- tem and DCIM, 100% Open Source.
    [Show full text]
  • A Graybeard's Worst Nightmare
    A Greybeard's Worst Nightmare How Kubernetes and Containers are re-defining the Linux OS Daniel Riek Fosdem 2020 1 Introduction ● Name: Daniel Riek Twitter: llunved ● Using GNU/Linux since 1994 ● Co-founded Free Software start-up ID-Pro in Europe in 1997 ● Worked at Alcove, a french GNU/Linux company 2001-2003 ● Red Hat, EMEA Sales Engineering 2003-2005 ● Red Hat, ran RHEL Product Management 2005-2011 ● CTO at trading startup Vincorex 2011-2012 ● Product Management at back-up company Acronis 2012-2013 ● Red Hat, managing cross-product integration, container initiative 2013-2017 ● Red Hat, Office of the CTO, Artificial Intelligence since 2017 ○ Working on FOSS AI incl. projects such as https://opendatahub.io and https://github.com/thoth-station DISCLAIMER So yes, I work at Red Hat, which is a subsidiary of IBM. Red Hat is a Free and Open Source Cloud Software Company. However, while I may use the Red Hat stack as an example, nothing I say here can be misconstrued into an official position of any of my former, current, or future employers. It’s just me. Greybeard Greybeards fight Balrogs. They hate systemd. They fork distributions. The Role of the Linux OS Infrastructure or Application Application Platform? View GNU / Linux ● In abstract representations of the modern software stack, the OS is often considered part of the Infrastructure. Infrastructure ● However, an alternative, application-centric view would View consider it’s primary role to provide a common runtime for applications, abstracting from infrastructure. Meanwhile: Growing Software Stack Complexity Source: www.modulecounts.com Historic Role of GNU/Linux Breaking the vertical lock-in of Mainframe & Mini-Computers, UNIX MAINFRAME UNIX GNU/Linux - e.g.
    [Show full text]
  • Blueprint Plans
    Designing a Human Centric Next Generation Internet FOSDEM ‘21 Collaborative Information and Content Management Applications devroom Introduction ● Jens Finkhäuser (Finkhaeuser) ● 30+ years since “hello, world” (C64) ● 20+ years since paid “hello, world” real software ● Dial-up modems, 1200 Baud (still hear the sound) ● BBSes before Internet/Web ● PHP → Python → C/C++ ● Fullstack → Backend/Libraries → Network protocols Introduction ● From 2006: Video on Demand streaming over P2P network at Joost – Netflix started VoD 2007 ● March 2008: Live streaming “March Madness” college basketball over P2P network – DLive “world’s first decentralized live streaming protocol” announced at BitTorrentX 2020-12-21 https://medium.com/@BitTorrent/launch-of-new-dlive-protocol-announced-at-bittorrentx-product-release-conference- fb8b7d9f5308 Introduction ● early 2019: worked with Blockchain startup on (live) video over decentralized networks – too much Blockchain focus ● Looked for funding ● Grant from NLNet confirmed Dec. 2019 ● 2020 pandemic, lockdown :( ● Mid-2020: joined AnyWi Technologies B.V. :) The Web is dead. The Web is dead. (it will stay undead for quite some time) Web Timeline 1991 - HTTP/0.9 SSL 1.0/2.0 - 1994 1996 - HTTP/1.0 SSL 3.0 - 1996 1997 - HTTP/1.1 1999 - HTTP/1.1 HTTP Auth + TLS 1.0 - 1999 2003 - Web 2.0 TLS 1.1 - 2006 OAuth 1.0 - 2007 2008 - HTML5 TLS 1.2 - 2008 ? OAuth 2.0 - 2012 ?? 2013 - Docker ? - H 2015 - HTTP/2 TT P/ 3 TLS 1.3 - 2018 Web Eras ● From 1991 Early Web: Simplicity – Establish HTTP as a decentralized protocol – Add some basic security features ● ca. 2003 Web 2.0: Get everyone online – Pull users to centralized providers instead of everyone running their own – Authentication/authorization more important – 2006: start HTML5, “Working Draft” in 2008 ● ca.
    [Show full text]
  • Cargo-Inspect Matthias Endler FOSDEM 2019
    What Is Rust Doing Behind the Curtains? Hi! I am Matthias Endler You might know me from... My YouTube channel! My Blog! Not at all! !2 • Hotel Search Platform • 2.5m+ Hotels/Accommodations • IT departments in Düsseldorf, Leipzig, Palma, Amsterdam • Java, Kotlin, Go, PHP, Python (, Rust?) • tech.trivago.com Why should I care? !4 Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. It aims to bring modern language design and an advanced type system to systems programming. Rust does not use a garbage collector, using advanced static analysis to provide deterministic drops instead. Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. It aims to bring modern language design and an advanced type system to systems programming. Rust does not use a garbage collector, using advanced static analysis to provide deterministic drops instead. Empowering everyone to build reliable and efficient software. Be curious. Try crazy things. Don't be afraid. !9 Being curious is an amazing trait! We should embrace it, and help people be curious. Pascal Hertleif – Rust’s approach of getting things right Julia Evans Why's Poignant Guide to Ruby The Rust Compiler !14 RUST SOURCE Parsing Desugaring HIR Borrow-checking Optimization MIR Optimization LLVM IR Optimization MACHINE CODE !15 RUST SOURCE Parsing Desugaring HIR Optimization HAIR Optimization MIR Borrow-checking Optimization LLVM IR Optimization MACHINE CODE !16 Desugaring... Candy designed
    [Show full text]
  • Giving Good Talk Workshop
    Giving Good Talks Workshop Selena Deckelmann PostgreSQL Global Development Group [email protected] LibrePlanet Activism. FOSDEMLibrePlanet 2009 LibrePlanet a policy of taking direct and militant action to achieve a political or social goal. FOSDEM 2009 LibrePlanet thanks, princeton! wordnetweb.princeton.edu/perl/webwn action a policy of taking direct FOSDEMLibrePlanet 2009 A call to action: Give talks. Here’s how. :) FOSDEM 2009 LibrePlanet Two parts: Theory and Practice FOSDEMLibrePlanet 2009 ★ PostgreSQL Consultant ★ User Group Leader http://pugs.postgresql.org/pdxpug ★ Conference Organizer http://opensourcebridge.org LibrePlanet Talks I’ve given • Running Successful User Groups • PostgreSQL released! • Bucardo (replication for PostgreSQL) • Conference kickoffs • How to un-rig an election • How to kill 5 chickens in 3 years LibrePlanet LibrePlanet YOU LibrePlanet community. Great talks create a FOSDEMLibrePlanet 2009 You’ve got an idea. FOSDEMLibrePlanet 2009 LibrePlanet You want: To share, To inspire, To find partners in crime. LibrePlanet What’s a community? A community is a group of people that make things together. 16 Talks may not create things, but they inspire: enthusiasm, curiosity, argument, commitment. FOSDEM 2009 LibrePlanet And a call to action. FOSDEMLibrePlanet 2009 Greatleadership. talks are FOSDEMLibrePlanet 2009 what is leadership? FOSDEMLibrePlanet 2009 Having a good time. FOSDEMLibrePlanet 2009 Not having a good time. FOSDEMLibrePlanet 2009 Leading without being in charge LibrePlanet Facilitator Moderator Guide FOSDEM 2009 LibrePlanet 6-step program to: prepare, give and love your talks. FOSDEM 2009 LibrePlanet 1.Get the talk accepted 2.Prepare for the talk 3.Get people to the talk 4.Start the talk 5.Make people feel good 6.Take questions LibrePlanet #1 - Get the talk accepted FOSDEMLibrePlanet 2009 Pick an event.
    [Show full text]
  • Status of Embedded Linux
    Status of Embedded Linux Status of Embedded Linux June 2011 Tim Bird Architecture Group Chair LF CE Workgroup Outline • Kernel Versions • Technology Areas • CE Workgroup Projects • Tools • Embedded Distributions • Industry Organizations • Miscellaneous • Discussion • Resources Linux Kernel Versions Kernel Versions • Linux v2.6.34 – 16 May 2010 • Linux v2.6.35 – 1 Aug 2010 • Linux v2.6.36 – 20 Oct 2010 • Linux v2.6.37 – 4 Jan 2011 • Linux v2.6.38 – 14 Mar 2011 • Linux v2.6.39 – 19 May 2011 • 5 versions in 12 months • Linux v3.0 • Expected in August for 20th anniversary Linux v2.6.35 • User-space OOM notifier • Cpuidle – idle pattern detection • Can detect when a periodic interrupt is causing a steady wakeup, and adjust next-wakeup accordingly • See http://lwn.net/Articles/387250/ • Timer slack mechanism introduced • Allows for combining timers within a “slack” range, decreasing wakeups and saving power • See http://lwn.net/Articles/369549/ • Ramoops driver • Record oops into RAM for later analysis Linux v2.6.36 • AppArmor – path-based security module • Wakeup counts • Kernel-user interface to allow system to suspend aggressively without race conditions on wakup events • New OOM killer • http://lwn.net/Articles/391222/ • More BKL removal • LZO compression in SquashFS • Runtime PM statistics Linux v2.6.37 • Jump labels • Eliminates (almost completely) the overhead when tracing calls are disabled • See http://lwn.net/Articles/412072/ Linux v2.6.38 • Perf symbols abstraction • Added 'symfs' option for off-box analysis of perf.data • Should
    [Show full text]
  • Bring Javascript to the Internet of Things - from Embedded Device to Smart Gateway
    Bring JavaScript to the Internet of Things - From Embedded Device to Smart Gateway Ziran Sun ( [email protected]) Philippe Coval ([email protected]) Samsung Research, UK Feb, 2019 FOSDEM, Brussels Contents 1. Why JavaScript in IoT? 2. JavaScript on Embedded Device a. Ultra-Light JS Engine - JerryScript b. IoT Platforms on JerryScript 3. JavaScript on Smart Gateway 4. Put It Together - A Simple Demo 5. WebThings API 6. There Are MORE You Can Do... 1. Why JavaScript in IoT? JavaScript is a good fit for IoT: ● Popularity ● Maturity ● Productivity “Any application that can be written in JavaScript will eventually be written in JavaScript.” - Jeff Atwood 2. JavaScript on Embedded Device IoT HardWare [1] (Table credit to Tilmann Scheller) 2a. Ultra-light JS Engine -JerryScript by Samsung JerryScript ● An ultra lightweight JavaScript engine (<64KB RAM, <200 KB ROM, 160KB binary size compiled for ARM Thumb-2) ● Originally developed from scratch by Samsung ● Transferred to JS Foundation in 2016 (https://js.foundation/) ● Self-contained and extremely portable ● Mature C API, easy to embed in applications JerryScript ● Optimization and performance have been top priorities ● Adding new features: – Jerry-debugger – ES6 related features – More hardware and OS supports ● Fast growing community Hardware and OS Supports (JerryScript Github) TizenRT on ESP8266 ARM MBED STM32F4 discovery ARTIK 05x Board with Nuttx, RIOT OpenWrt Particle firmware on Zephyr OS on Raspberry Pi 2 Photon board Arduino 101 JerryScript in Smartwatch [2] 2b. IoT platforms based on JerryScript IoT JavaScript Platforms based on JerryScript ● IoT.js by Samsung a. Lightweight version of node.js for constrained devices b.
    [Show full text]
  • Conference Report
    SEE TEXT TM ONLYconference REPORT by Benedict Reuschling • FOSDEM 2017 FOSDEM (Free and Open Source Software Developers' European Meeting) is a noncommercial, volunteer-organized European event, centered on free and open-source software development. It is held annually, usually during the first Allan Jude and weekend of February, at the Université Kristof Provost at Libre de Bruxelles Solbosch campus in the FreeBSD table the southeast of Brussels, Belgium. ast year's one-day FreeBSD devsummit—held • Removal of translation project download during the first day of the conference—was pages that had outdated releases. In some Lvery well received. This year, we decided to cases, this resulted in ridiculous releases like add an extra day for that—the Friday right FreeBSD 11 for alpha, ia64, and pc98. These are before FOSDEM—so there was no overlap with not supported architectures anymore, but trans- any talks participants might want to attend (or lation work has not caught up with reality yet, give), and it gave everyone an opportunity to and so we decided it was better to remove catch up with new development efforts. The these pages. In one case, translators were quick FreeBSD Foundation generously sponsored the to respond and fix these issues, and pages in lunch and hotel conference room. their languages were activated again. On Friday, a total of 11 developers met in • Removal of the mirror selection drop-down that conference room, and after a few menu on www.freebsd.org. In the past, this was announcements, we went right into listing top- used to select a mirror that was closer to one’s ics of interest to those present.
    [Show full text]