uk: Комп'ютерні науки

description: Unidirectional Data Flow (UDF) is a powerful technique that enhances our Reactive apps to work deterministically. Synchronising our views with fresh data was never an easy task to accomplish. For this same reason, there are mechanisms that support us to make that possible. Surely callbacks were a thing in the past, however, they were an antipattern themselves due to the lack of readability. Now we don't need to deal with them any more thanks to Kotlin Coroutines. Getting ready for Declarative UIs with Kotlin Coroutines and friends is indeed feasible, now we could use suspend functions, Flow and in the end StateFlow would make our Reactive apps ready for Declarative UIs. Let’s define a single entry point, receive data, transform it into a state, and render each state. Let’s get our apps ready for a Declarative UI world on Android. You'll learn how to use Kotlin Coroutines and friends from the Kotlin Coroutines library to take advantage of really efficient and easy to read code. How to handle its lifecycle without being compromised to a specific external Android framework, which would enable your code to be prepared for more purposes than Android only apps.

uk: вхід без авторизації

name: Getting ready for Declarative UIs with Unidirectional Data Flow using Kotlin Coroutines: Unidirectional Data Flow in action: suspend functions, Flow & StateFlow to make our Reactive apps prepared for Declarative UIs.


Nicolas Fränkel

type: Person

cs: Informatika

de: Informatik

fi: tietojenkäsittelytiede

uk: Комп'ютерні науки

en: Computer Science

fr: Informatique

da: Datalogi

es: Ciencias de la Computación

nl: Informatica

cs: Technické vědy

de: Ingenieurwissenschaften

fi: tekniikka

uk: Інженерія

en: Engineering Sciences

fr: Ingénierie

da: Ingeniørvidenskab

es: Ingeniería

nl: Engineering

description: In this talk, I’ll demo how you can migrate a traditional sample Spring Boot application written in Kotlin to coroutines one step at a time via a hands-on demo. From Wikipedia, Reactive Programming is 'a declarative programming paradigm concerned with data streams and the propagation of change.' The programming model is complex to master. It requires a lot of experience to feel comfortable with it. However, there’s no denying that it fits the cloud ecosystem perfectly. Since on-premises infrastructure is oversized, running a program that executes a couple of additional CPU cycles won’t change anything. On the other hand, you will pay for them if you host the same program on third-party infrastructure. Depending on the number of those cycles, and the number of nodes the program runs on, it can make a huge difference in your monthly bill. In this talk, I’ll demo how you can migrate a traditional sample Spring Boot application written in Kotlin to coroutines one step at a time via a hands-on demo.

TIB AV-Portal

type: Service

type: WebContent

type: MediaObject

@language: en

cs: přihlášení není vyžadováno

de: keine Anmeldung erforderlich

uk: вхід без авторизації

en: no login required

nl: geen login vereist

name: From Imperative to Reactive to Coroutines

FOSDEM VZW

type: Organization

cs: Video

de: Video

fi: Video

uk: Відео

en: Video

fr: Vidéo

da: Video

nl: Video

es: Video


uk: Комп'ютерні науки

description: In this session, I will be talking about the paradigm shift from Kotlin synthetics to View Binding and will be covering the following, 1- Demerits of Kotlin synthetics 2- The road forward 3- What’s the View binding and what are its benefits? 3- Migrating from Kotlin synthetics to View Binding with a code walkthrough

uk: вхід без авторизації

name: Goodbye Kotlin Extensions, Welcome View Binding


uk: Комп'ютерні науки

description: Model-View-Intent is a simple architectural pattern in principle, but questions come up when you try to implement it yourself. We draw on our 2+ years of experience with orbit-mvi, our MVI library, to show best practices for using an MVI system in your application. How do you integrate with Android? What happens when you rotate your device? What about navigation or one-off events? How do you make the system type-safe? What about developer experience? If you’ve ever had similar questions come to our talk!

uk: вхід без авторизації

name: How to write your own MVI library and why you shouldn't


Kotlin Roadmap: Upcoming Features

uk: Комп'ютерні науки

description: In this talk, we’ll discuss what the Kotlin team is working on, the priorities we have, and the additions you can expect in the language. The JVM platform is evolving, and Kotlin is keeping up with the new features as they become available. This includes the features introduced by the upcoming Project Valhalla and JVM support for sealed classes and records. In this talk, we’ll discuss how these changes affect Kotlin as a language, and how the Kotlin team finds a balance between drawing on the power of the new JVM versions, supporting the same functionality in older versions, and providing a smooth transition. We'll also talk about how you, the community, can influence the design and evolution of the language!

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Software development is hard. It’s even harder when you’re building libraries that other developers will depend on. I’ll talk about my experience with library development in Kotlin Multiplatform, trying to highlight challenges I’ve faced and mistakes I’ve made. We’ll look at this through the lens of recent updates I’ve made to the library I maintain, as well as the current state of the wider Kotlin library ecosystem

uk: вхід без авторизації

name: Lessons I’ve learned in Kotlin Multiplatform Library Development


uk: Комп'ютерні науки

description: Http4k is a lightweight HTTP library written in Kotlin that enables serving and consuming of HTTP services in a functional and testable way. Unlike many other libraries and frameworks which have complicated abstractions and workflows, http4k captures the essence of communication over HTTP with few simple concepts. In this session I will explain and demo the core concepts in http4k by live coding from scratch http server for noughts and crosses game. Target audience: Software developers with couple years of experience using a programming language like Java, Kotlin or Scala. Dmitry has been programming since DOS times. He spent the last 15 years or so in Java lands most recently working with server-side Kotlin.

uk: вхід без авторизації

name: Live coding server as a function with http4k


uk: Комп'ютерні науки

description: This talk is gonna be about the scenery framework, a framework we have developed for visualising geometry and large volumetric data (TB+) using Kotlin and Vulkan or OpenGL. Coroutines, Kotlin's conciseness and syntactic sugar enabled the efficient codebase of scenery to integrate with popular image processing tools, and support Virtual Reality rendering, both on headsets and on distributed multi-projector systems like CAVEs. We'll show code, demos, lessons learned, and demonstrate how we use the framework in a visualisation software for end users, sciview, that we have also developed.

uk: вхід без авторизації

name: Realtime 3D graphics and VR with Kotlin and Vulkan: Let's enjoy the scenery


Start with the Kotlin flow

uk: Комп'ютерні науки

description: Kotlin flow is a new stream processing API introduced in kotlin. In this talk we'll learn about flow API's, internal details & how flow can be used to handle asynchronous streams of data. In this talk we'll cover -- Overview of flow -- Why we need flow -- Internals and deep dive in flow API's -- How a flow can be created -- Using flow in android apps -- Exception handling in flow processing -- Testing flows

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Dependency management in the Kotlin and in the JVM ecosystems is great, especially for Gradle users, but there's room for improvement. Some tasks, like upgrading dependencies to the right versions, are still tedious and time consuming. There's also compatibility gotchas because of the lack of metadata. This talk will start with a mention of the different problems that come with dependency management in real-world projects. Then it'll show how the developer tool refreshVersions (MIT licensed) tackles some of these issues in Gradle projects, saving a lot of time when upgrading dependencies. Finally, I'll talk about what the future can be for dependency management, be it from new features in future Gradle versions, or tools or conventions that the community can create to improve the status quo.

uk: вхід без авторизації

name: The future of dependency management, seen from 2021


uk: Комп'ютерні науки

description: Spring Framework helped us through dark times and is still a very active and helpful project. But is it the only option for doing any kind of web projects? There are many new frameworks around and they have interesting approaches. Especially when we use Kotlin, we might get better Developer Experiences and much better performance results. This talk is about showing you some interesting alternatives and hopefully helps you with finding a good fit for your next project Let's have a look at a real life borrowed REST endpoint, written in Kotlin (dahhh) using Spring, Ktor, Micronaut and Jooby. We'll compare the efforts, timings and developer experience and collect pros and cons for that next project planning.

uk: вхід без авторизації

name: This Spring Shall Be Challenged: Does it has to be Spring all the time?


uk: Комп'ютерні науки

description: Every year we take some time to introduce the Open Source Design collective, what we do, where to find us and how to get involved.

uk: вхід без авторизації

name: A brief introduction to Open Source Design


Communicating CryptPad

uk: Комп'ютерні науки

description: CryptPad is an encrypted and open-source collaboration suite. One year ago I joined the team as a designer. In this talk I will present some of what has been achieved and reflect on the challenges ahead. When I joined CryptPad in November 2019, the project had already been operating for a few years. Like many open-source projects it was lacking on the design front and I was brought in to "improve the user experience". This broad task takes on many forms, but they all boil down to one thing: improving communication. Whether in UI design, UX writing, answering support tickets, writing documentation, or visual identity, all of my work to date has been about how CryptPad communicates. I did not set out to re-invent everything from scratch but rather aimed to consolidate what was already there and to make the software more legible in a broad sense. This includes the strategy for implementing design changes gradually, negotiating immediate demands (e.g. implementing a new feature) and longer-term ambitions (e.g. rebranding) all while adhering to the release cycle. In this talk I will highlight examples of design improvements achieved this year, from specific features to the release of our documentation and our upcoming 4.0 release with a new visual identity. I will also reflect on the next major challenge: accessibility.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Estimating the user's mental state with a set of special measuring devices can be helpful in detecting bottlenecks of the human-computer interaction. Until recent years, electroencephalography devices were too expensive and too complicated for most UX researchers, but now there are affordable consumer-grade EEG devices. The talk covers EEG headsets produced by NeuroSky and Emotiv, as well as the open hardware OpenBCI project. Each headset has its advantages and disadvantages for UI/UX research. Specifics of data that can be acquired from each headset is reviewed, and existing open-source tools and libraries to get these data are discussed. The talk explains how we can use EEG headsets to evaluate mind concentration and relaxation, as well as rejection and arousal factors, which can be used to detect positive and negative emotions. EEG usage scenarios are discussed with examples of the FLOSS projects exposed to such UI testing. Estimating the user's mental state with a set of special measuring devices can be helpful in detecting bottlenecks of the human-computer interaction. Until recent years, electroencephalography devices were too expensive and too complicated for most UX researchers, but now there are affordable consumer-grade EEG devices. The talk covers EEG headsets produced by NeuroSky and Emotiv, as well as the open hardware OpenBCI project. Each headset has its advantages and disadvantages for UI/UX research. Commercial devices have different primary goals complicating their usage for research with cyphering, special licenses and limitations in the vendor-provided proprietary SDKs - but open-source tools developed by the community improve the situation. OpenBCI is quite the opposite: it is fully open, but much harder to obtain/build. Specifics of data that can be acquired from each headset is reviewed, and existing open-source tools and libraries to get these data are discussed. The talk explains how we can use each headset to get information about the user's mental state. Mind concentration or relaxation is a highly informative parameter for UX; it can be easily evaluated and it can be obtained with any of the EEG headsets. Besides that, most of the reviewed devices provide enough data to measure rejection and arousal factors, which can be used to detect positive and negative emotions. Finally, EEG usage scenarios with examples of the FLOSS projects exposed to such UI testing are discussed.

uk: вхід без авторизації

name: Community-accessible EEG monitoring of the user's mental state in the UX/UI research


uk: Комп'ютерні науки

description: Since the middle of 2020, an open community has formed around the goal of making Bitcoin more intuitive and accessible. Our big project is a Bitcoin Design Guide to help both designers and developers create better Bitcoin experiences faster. We also work to promote the idea of open design, to bring more designers into the space, and to help open-source projects adopt better design processes. This presentation will provide an overview of all these efforts, where we are (early) and what the future might hold.

uk: вхід без авторизації

name: Design Bitcoin for Everyone: How we practice and spread open design to make Bitcoin more intuitive and accessible


uk: Комп'ютерні науки

description: My talk will be structured as follows followed by a short Q&A, - Why do I need to learn to code? - Helping OSS as a Developer-Designer - The approach to coding for OSS complexity - Stuff to keep in mind to make meaningful contributions - How to tackle a particular issue? - Receiving code reviews effectively - Where do I go ahead with all this new found knowledge?

uk: вхід без авторизації

name: Gain a Superpower in OSS as a Designer Through Code


uk: Комп'ютерні науки

description: During 2020 we spent the year working with the maintainers of pip, the Python package manager. The project was to implement a new dependency resolver and improve pip's usability. It was a difficult project as personally, I knew very little about software package managers apart from doing "pip install". How do you do UX design with a piece of software used by hundreds of thousands (possibly millions!) of users on a small budget? Where do you find those users? Combined with this the maintainers were under pressure to do a lot of complicated work in a short period of time. This session will be a recorded discussion between the UX designers and the pip maintainers. We'll talk about what it was like to spend a year working together, the challenges, and the lessons we can teach others. We'll leave 5 minutes (approx) at the end for Q&A.

uk: вхід без авторизації

name: UX contributions to pip, Python's package installer: A conversation about UX contributions with the pip team


uk: Комп'ютерні науки

description: All over the FOSS world, we see that out of thousands of issues and pull requests, very few of them tackle accessibility issues. And this is mostly due to a lack of knowledge on the subject, and a fear that it’s too hard to implement these changes. When we say “accessibility,” we immediately think of vision impairment, but being able to use a product with just your keyboard is also an accessibility feature. It’s 2021 and we talk about providing equal opportunities everywhere in tech, but so often we disregard our own users or community. We have this idea that accessibility issues can be postponed and fixed later, as they don’t affect the vast majority of our users. But is that true? One billion people experience some sort of disability. At least 10% of the adult population has a vision impairment. And those are just numbers for people who have been tested and suffer from a long-term disability. By creating accessible products you can... * Improve the experience for all your users * Increase your user or community base * Cater to clients whose businesses have a mandatory accessibility requirement for the software that they use * Potentially expose areas in UI or user flow that need improvement In this talk, following a real-life example, you’ll learn how to check where your project stands today and what steps you can take to make it more accessible, even with the help of your community.

uk: вхід без авторизації

name: Latest tech, great! Accessibility, not so much.


uk: Комп'ютерні науки

description: Designers are still relatively rare in the FL/OSS space and those that have been around and active are burning out and struggling to peer support each other effectively. I see mentoring designers, new to open source software as a key way in which we can make FLOSS sustainable generally and specifically for the designer community in FLOSS. In this session, I'll be outlining what I've observed and done as a 'mentor' in the FLOSS design space. What I've tried to do to support designers new to FLOSS in order to 'boost' our numbers actively contributing and keeping our community and OSS healthy. But there's plenty of ground unexplored here, which is why I'd like to spend half of the session actively workshopping via a shared etherpad document how we can mentor designers more sustainably withing FLOS. What is needed by those that want mentoring? What do FLOSS projects need support with? How can mentors share resources and processes? and likely, many more questions to collaboratively work on.

uk: вхід без авторизації

name: Mentoring designers in open Source Software.: What I've learned mentoring and supporting designers in OSS.


uk: Комп'ютерні науки

description: Open up your design process is good for your creative health. How can we shift the design perspective to be more focused on the process than on the result? How can we collaborate openly with frameworks that help us learn from each other and build on each other's ideas? Open design can help transform organizations and projects by just unveiling the creative potential we all have within. We can learn how to dot, but we need to learn that together. In this talk, you will find inspiration and examples of how open design processes and frameworks can disrupt today's creative production.

uk: вхід без авторизації

name: Open design and how everyone can be a designer: Changing the way we design together


uk: Комп'ютерні науки

description: Deaf Culture and Hearing Culture, both have established ways of communicating among each other. When you want to mix and mingle, members of both groups need to find new shared channels. We present design considerations leading to our playful prototypes, serving as icebreakers and dialog starters. We rely on open source software to create open source hardware.

uk: вхід без авторизації

name: OSH Communication Kit: Conversation starters for the Deaf and the Hearing


uk: Комп'ютерні науки

description: We demand that patients own their data. We demand that healthcare services are open source. Because healthcare is too important to be closed. We are getting screwed. We’re dying younger, maternal mortality is ticking up, and big money is running healthcare, at our expense. The data that drive our care, the algorithms that dictates our parents care, our neighborhood’s care, our nation’s care, and the everyday services we rely on, feed on our experiences, are governed by black boxes and crooked biases, and are owned by others. It’s our health. Our very lives are at stake. We demand that patients own their data. We demand that healthcare services are open source. Because healthcare is too important to be closed. See how we, the atomic units of the health system, can bend it back to the light.

uk: вхід без авторизації

name: Own Your Healthcare Experience: An Open Source Path


uk: Комп'ютерні науки

description: Penpot (formerly UXBOX) is an Open Source online design & prototyping platform with the aim of bringing the whole team to the design process. Penpot is multiplatform (web based) and based on open standards (SVG). The platform provides a set of tools meant not only for designers but also for developers and stakeholders. Design, prototype, feedback system, handoff specifications and low-code among them. We will share our vision, Penpot’s current state and our next challenges about the project. We will also perform a demo and hope to contribute to the already open channel between FOSS and Design.

uk: вхід без авторизації

name: Penpot, design freedom for teams: One FOSDEM and one pandemic after we're excited to announce that Penpot Alpha release will be launched February 2nd!


Pitch your project

uk: Комп'ютерні науки

description: In this session, FOSS projects as given time to present and ask for contributions to the designers in the room. Each project is given 2 minutes to present. In those 2 minutes, they should briefly introduce the project, explain what design help they need, and provide contact details so designers can reach them after FOSDEM. The Open Source Design collective will use the information to submit a "job" for each project to the Open Source Design "jobs board" (https://opensourcedesign.net/jobs/), so that the request for design help reaches not just the designers in the room, but also the wider design community.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: In this session I'll talk about the brief history of Drupal & the Drupal interface, how it has evolved and why this redesign is an important step for the future of Drupal. As it's important to being inclusive and we treat this as a key value in the Drupal community we made inclusivity & accessibility the main priority. I will dive into the Design System, the principles behind it and the new interfaces which are based off this Design System: Claro The new, upcoming default admin experience. Gin The so-called "Future UI" – which started as a pure vision and is now available as a contrib theme which you can use today.

uk: вхід без авторизації

name: Redesign of an established Open Source CMS


uk: Комп'ютерні науки

description: As designers get introduced to FOSS, what should they know? What techniques and tools would they need, and why? This talk will explore a recommended guide to developing a productive open source design workflow.

uk: вхід без авторизації

name: The Open Source Designer's ToolBox: Recommended Techniques and Tools for Open Source Designers


uk: Комп'ютерні науки

description: A common misconception about contributing to open source is that you need to write code. In fact, it’s often the other parts of a project that are in urgent need of assistance. There are other ways of helping an open source project which include 1.Writing documentation, 2.Identifying bugs, 3.Testing code, 4.Answering queries from users, 5.Moderate/organize events, 6.User Interface & User Experience Design 7.Making a monetary donation, 8.Advocacy.

uk: вхід без авторизації

name: Ways to Contribute to OS Projects Without Writing Line(s) of Code


Why are we scared of user research?

uk: Комп'ютерні науки

description: Most of the free software projects I know do little to none research with their users. Well: the vast majority do absolutely none, and very few do a teensy little bit, most of the time with the most vocal members of their user base. Why is that? Why is free software afraid of user research? This presentation will propose a classification of free software types based on their ideas and attitudes towards user research. The classification is really just a joke, but I hope it will help me debunk some of the misunderstandings and myths that surround user research in free software circles. I will also try to explain what user research is actually about, how it can help your free software project, and give you some advice on how to get started with it.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: If you can't modify the root filesystem of your distro (no, not even with sudo!!), you can't break it, right? Well... soft of. But what's the price to pay in terms of usability? How are you actually able to use an OS like that for common everyday user (web browsing, document editing) and developer (writing and building code) activities? Come to this talk and learn how it's being to use one of them, i.e., openSUSE MicroOS, as a daily driver since the last few months and how that compares with using other similar solutions, like Fedora Silverblue and Endless OS. An Immutable OS is a GNU/Linux distribution where the user has limited (if at all!) changes to modify the root filesystem. And by "modify the root filesystem" we mean doing things like installing software with the package manager. Some examples of Immutable OSes that falls in this definition are Fedora Silverblue, openSUSE MicroOS, openSUSE Kubic and EndlessOS. In fact, on Fedora Silverblue, the user can't add software with dnf, not even after becoming "root". Similarly, on openSUSE MicroOS, zypper install just does not work. This brings the advantage of keeping the OS cleaner, consistent, reliable and a lot harder to break. For instance because what developers produce and tests is a lot more similar to what actual users use, with respect to what happens with "traditional OSes". And they usually come with a nice way of rolling back changes too, which is also really valuable. But what are the technologies behind all that? Well, there are a few, and although the outcome is rather similar, their inner working and characteristics are quite different. In this talk, we will focus on two: ostree and transactional-update. The forme is used in Silverblue and Endless OS, the latter in openSUSE MicroOS and Kubic. We will try to provide a description of how both work and what are the main differences between them. Even more important: what's the user experience with such distros? And what if one is not only a user, but a developer? Well, this talk will offer a perspective of how it is being to use one as one's own daily driver, for both user-like and developer-like tasks. That would be openSUSE MicroOS. We will cover what it is the current status of the "MicroOS as a Desktop" project, what are the current challenge and the upcoming developments. But we will also try to hint at how the user/developer experience may vary between MicroOS and others (more mature) immutable desktop solutions like Fedora Silverblue and Endless OS.

uk: вхід без авторизації

name: An User & Developer Perspective on Immutable OSes


Homebrew: macOS Big Sur and ARM

uk: Комп'ютерні науки

description: A description of what changes Homebrew needed to make to get working on macOS 11 Big Sur and what work we've done and are doing to support a new CPU architecture for the first time since Snow Leopard. Providing details of the biggest changes that Homebrew users have been excited about in the last year: support for Big Sur and the ongoing work for ARM. Provide technical details on what's required for us to support a new operating system from Apple and what the entire Homebrew ecosystem needs to do/change in order to support a new architecture. Nearer the time we'll also be able to provide a status report on how near we are to "official" support.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: There are many Linux distributions out there - and almost as many different approaches to how they're built. Two distributions on nearly opposite ends of the spectrum include OpenMandriva (which uses binary packages, builds and updates each package individually, applications are part of the OS, ...) and OpenHarmony (which builds the OS from source in one go, is updated through OTA images, and treats applications as something separate, ...) A developer involved in both projects explains how the 2 projects go about building their respective OSes, why both projects made the choices they made, how the approaches differ from a developer and user perspective, and what approach works better for what particular use case.

uk: вхід без авторизації

name: Two different approaches to building a distribution: OpenHarmony and OpenMandriva: An overview of very different ideas - from someone involved in both projects


uk: Комп'ютерні науки

description: An overview and discussion regarding the openSUSE Project's latest rolling-release distribution, MicroOS. The session will detail how concerns regarding the stability of rolling releases are addressed by narrowing the scope of OS, and using technologies like (Atomic) Transactional Updates and automated health checking to guarantee the system keeps working. The session will cover how MicroOS is developed, and the broad range of suitable use cases, from Container server workloads, to Raspberry Pi's and Desktops including real-world examples from the community.

uk: вхід без авторизації

name: openSUSE MicroOS, a platform for everything from containers, to IoT, and even the desktop: Bigger isn't better, slower isn't safer


uk: Комп'ютерні науки

description: The database market is changing drastically in ways no one imagined 5 years ago. Database vendors are moving away from traditional deployment methods and embracing database as a service (DBaaS) as the default method to offer their database technologies to consumers and users. Much of this movement has been built because of the success and popularity of DBaaS offerings by major cloud vendors. Unfortunately, this is leading to a new era of NROSS (Not really open source) technologies that pretend to be free, open, and transparent but simply are not. As people wake up from the hangover’s caused by the incompatibilities, lack of portability, and increased costs they are looking at how to reclaim the openness, transparency, and freedom true OpenSource has provided them in the past. We will explore the trends and give his opinions and ideas on how we need to disrupt the current trends to keep open source open, and give users the freedom of having a quality alternative.

uk: вхід без авторизації

name: Why Public Database as a Service is Prime for Open Source Distribution


uk: Комп'ютерні науки

description: Small businesses and non-profits may opt for Platform-as-a-Service solutions such as Heroku to avoid the operational burden of managing their own infrastructure. However, PaaS solutions quickly become cost-prohibitive for compute- or memory-intensive applications. In this talk, I’ll demo an open source infrastructure automation toolchain based on Ansible, Github Actions, Vagrant, Packer, Terraform, and Sentry. Once instrumented, this toolchain incurs a $0 recurring cost and can be safely and trivially scaled up. Each component of the toolchain requires minimal operational expertise and is managed through a UI. State-change notifications are routed to email or a Slack channel, ensuring everyone stays on the same page. Test, deploy, monitor, and scale transparently, and with confidence! The talk will demonstrate how to make the most of free, open source infrastructure tooling to fully automate tests, monitoring, code deployment and infrastructure deployment. You can get a lot of mileage out of free!

uk: вхід без авторизації

name: An alternative to Heroku: An end-to-end open source infrastructure automation toolchain


uk: Комп'ютерні науки

description: Currently, you can provision individual servers very well with foreman / katello and configure them using Ansible, Puppet or Salt. However, modern applications are composed of different services that are operated on separate servers and are connected to each other. This presentation introduces the new plugin foreman_acd, which allows the orchestration of entire interconnected applications. Currently, you can provision individual servers very well with foreman / katello and configure them using Ansible, Puppet or Salt. However, modern applications are composed of different services that are operated on separate servers and are connected to each other. This presentation introduces the new plugin foreman_acd, which allows the orchestration of entire interconnected applications. foreman_acd is a new plugin for foreman developed by ATIX AG and released as open source.

uk: вхід без авторизації

name: Application centric deployment with foreman / katello


Cluster API as Code

uk: Комп'ютерні науки

description: Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters. Cluster API provides clusterctl, which can be configured with environment variables and allows the generation of Kubernetes manifests that describe your workload clusters. While this provides a great on-boarding experience, managing and wrangling more YAML isn't something we're all yearning to do. Fortunately, there's a better way. Introducing Cluster API bindings for TypeScript, Go, and Python. In this talk, I'll introduce you to managing Cluster API through your favourite programming languages. Cluster API is a great piece of technology, but managing and constructing the YAML can be painful and difficult. This talk introduces the audience to using Pulumi and custom built libraries for exposing Cluster API via TypeScript, Go, and Python.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: How to compose the configuration and secrets of microservices taking into account various variables without dying in the attempt. In a micro service based architecture it's common to have to manage configurations and secrets based on different variables, such as the microservice, flavors of the microservice, the execution environment and data center, etc. Since it is an arduous task both in the time needed to add a new variable and to refactor existing ones I have created MHConfig. MHConfig is a microservice in charge of composing configurations and secrets according to different labels and notifying the clients who use it when a change has occurred, providing various features to facilitate this work as references to recurrent or global values, traceability of the clients using a configuration, access control lists to prevent obtain to other microservice configurations/secrets, etc. In this session I'm going to talk about how the tool works and how it can help solve common problems when managing configurations and secrets in a complex environment.

uk: вхід без авторизації

name: Config, config everywhere: How to compose the configuration and secrets of miroservices taking into account various variables without dying in the attempt


Desktop Linux Management @ FB

uk: Комп'ютерні науки

description: How we manage Facebook's desktop Linux fleet, and how it is positioned as a way to drive features into our server fleet. How we manage Facebook's desktop Linux fleet, and how it is positioned as a way to drive features into our server fleet. Facebook runs CentOS on its server fleet, and offers Fedora (and soon, CentOS) as supported Linux distributions on laptops and desktops. This is a recent development - we previously recommended Ubuntu LTS as a self-supported option, but found that switching to Fedora (and officially supporting it) allows for not only reusing the infrastructure already used in the server fleet (e.g. the pipeline for creating packages) but also to serve as an integration point for driving features into CentOS. I'll also discuss how we manage the desktop fleet, and contrast it with how servers are managed.

uk: вхід без авторизації


Don't get stuck on Pulp 2!

uk: Комп'ютерні науки

description: Pulp helps you fetch, upload, organize, and distribute software packages. With Pulp 2 approaching EOL and Pulp 3 being more stable than before, we strongly encourage you to move to Pulp 3. It might be a big deal if you have a large setup and a lot of carefully curated content and repositories. To make it easy for you, we'd like to introduce a plugin which allows you to migrate from Pulp 2 to Pulp 3 smoothly and without recreating everything from scratch. In this talk, we'll share: - how we are doing the migration - what are the benefits - when you want to use it - how it goes (demo) The target audience is Pulp 2 users.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: You need to migrate some workloads from a private datacenter to public cloud. The result? The unavoidable hybrid environment. How do you observe traffic and mitigate risky changes to each system? In this talk, I’ll discuss how you can supercharge your cloud migrations with a combination of network automation for your datacenter and a service mesh across environments. You need to migrate some workloads from a private datacenter to public cloud. The result? The unavoidable hybrid environment. How do you observe traffic and mitigate risky changes to each system? In this talk, I’ll discuss how you can supercharge your cloud migrations with a combination of network automation for your datacenter and a service mesh across environments. How to Migrate to Cloud, Supercharged Step 1: Re-platform application on public cloud. Step 2: Deploy service mesh in public cloud and edge of datacenter. Step 3. Configure datacenter routing with network automation. Step 4: Send traffic using blue/green deployment to the new application. Step 5: Continue to run in both datacenter and public cloud. I’ll demonstrate how to add observability and failure tolerance to this workflow. By combining HashiCorp Consul service mesh and Consul Terraform Sync, I can manage, automate, and shape traffic in my hybrid environment from a single pane of glass.

uk: вхід без авторизації

name: The Great Cloud Migration with Network Automation & Service Mesh


A hands-off approach for your Terraform

uk: Комп'ютерні науки

description: If Continuous Integration/Continuous Delivery is critical for application deployment, why is it not being equally leveraged to manage infrastructure. Most teams I've seen have reached the first goal of defining their infrastructure configuration as code (often with Terraform), but they tend to stop there. Access and/or education on how to run Terraform is given to a few select people, and they then run it in the wild jungle that is there own machine. In this talk, Jeff with highlight some of the techniques, tools, quick wins, advanced features, and key measurements for putting your Terraform code through the pipes of automation.

uk: вхід без авторизації


Host your own on-premise Ansible Galaxy

uk: Комп'ютерні науки

description: This talk will demo the setup and features of an on-premise software for storing, mirroring, and distributing Ansible Collection and Role content. This is analogous to an on-premise version of galaxy.ansible. To get up and running quickly, we’ll be using a pre-built container with pulp_ansible and galaxy_ng. A single container is all that is needed for setup. Once setup, I will demonstrate: - Creating one or more repositories to store Collections and Roles - Installing Role and Collection content using the ansible-galaxy CLI client from these repositories - Synchronizing Collections and Roles from galaxy.ansible - Uploading Collection content via ansible-galaxy CLI - Copying Collections and Roles between multiple repositories, simulating dev -> staging -> production environments - Perform these operations using a great UI, whenever possible, and APIs otherwise

uk: вхід без авторизації


uk: Комп'ютерні науки

description: While we all probably think we're doing all the DevOps stuff the right way (and we do, don't we?), drift happens. Even as an experienced Terraform user, as your infrastructure team and codebase grows, it often becomes harder to track drift. I'll share here war stories from different teams, and show common pitfalls of popular commands we use when we want to know what's changed in our infrastructures. While we all probably think we're doing all the DevOps stuff the right way (and we do, don't we?), drift happens. Even as an experienced Terraform user, as your infrastructure team and codebase grows, it often becomes harder to track drift. I'll share here war stories from different teams, and show common pitfalls of popular commands we use when we want to know what's changed in our infrastructures. There are a lot of juicy stories from the trenches to be told on infrastructure drift. Sure enough, we all do GitOps by the book! Or we all have the right processes in place. But we also have to interact with other teams. We also have to grant some level of access to our infrastructures to some services or tools that may eventually generate uncontrolled changes. What if we couldn't catch them all? What if all drift reporting so far was faulty? You can't efficiently improve what you don't track. We track coverage for unit tests, why not infrastructure as code coverage? How can we make sure our infrastructure code matches our actual infrastructure state? In this talk, using Terraform with AWS resources, I will show how infrastructure drift can go undetected despite our best efforts or tooling and cause issues and end the talk by showing our own tool driftctl, (just released under Apache-2.0 licence) that tracks IaC coverage and warns of infrastructure drift.

uk: вхід без авторизації

name: Infrastructure-as-code drifts aren't like Pokemon : you can't catch em all


Kubernetes Config Management Landscape

uk: Комп'ютерні науки

description: “We are all YAML engineers now” as Bob Walker said in 2018 in Ghent. So we now need something to manage these millions of lines of YAML. There’s the “Kubernetes application management tools” list by Bryan Grant with over 120 tool aiming at config management for Kubernetes. This area is evolving fast, and as k8s users we need some guidance to make informed decisions on what to use. In this talk I’ll describe the problem I need to solve and take a look into what we can learn from the previous generation of cfg mgmt tools. Then, will show some of the new tools and methods. Will not go into details of each solution, but rather compare different approaches and discuss which is good for specific needs.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Infrastructure as Code (IaC) is an approach that takes proven coding techniques used by software systems and extends it to infrastructure. It is one of the key DevOps practices that enable teams to deliver infrastructure, and the software running on it, rapidly and reliably, at scale. In this presentation, we will look at Principles, Patterns, and Practices for Effective Infrastructure as Code that have helped me and the teams I have worked with over the years. We will look at anecdotes about deploying & operating infrastructure and applications in production. Infrastructure as Code (IaC) is an approach that takes proven coding techniques used by software systems and extends it to infrastructure. It is one of the key DevOps practices that enable teams to deliver infrastructure, and the software running on it, rapidly and reliably, at scale. In this presentation, we will look at Principles, Patterns, and Practices for Effective Infrastructure as Code that have helped me and the teams I have worked with over the years. We will look at anecdotes about deploying & operating infrastructure and applications in production.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Container registries are becoming an important source of software distribution. Why package content in a container image? A container image includes an assorted collection of software - often hundreds of software components. This format facilitates use of the software, because a complete set of the needed components are delivered as a single unit. In this talk we look into how to ship content regardless of how it is packaged (rpm, python, ansible roles) in a container image and build the image with just one single tool - Pulp3. With Pulp3 you will be able to take advantage of software distribution using the container first strategy : - Containerize your application: build and run application in a container; - Build execution environment images - which provide security features such as isolated execution and integrity of applications; - Cache the content - allow container images to build without relying on external infrastructure by caching(or permanently storing) the application and dependencies.

uk: вхід без авторизації

name: Registry native delivery of software content


Release Management at Scale with GitOps

uk: Комп'ютерні науки

description: Transform Release Management role from System administration to software development for Release operations thru GitOps practices Shipping operational knowledge into a software is a big milestone towards better configuration management. In this talk, I will explain how we introduced configuration management practices into release management team while leveraging the software engineering principles during this journey. I will start by clarifying what problem(s) were we trying to solve, namely: Lack of system Reliability, huge dependencies among silos, Rework between Dev, QA and release teams. Then, I will explain the solution that I proposed to solve these problems, namely: Service Offering Model, Killing environments gap and treating everything as CI (Configuration item). After that , I will move forward on challenges that I faced while trying to solve the issue: migration from Legacy system, security compliance & disconnected environment, .. and others. Finally, I will give overview about the solution implementation.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: This talk will do a deep dive on how Ansible can be used to assess the operational state of your IT infrastructure (especially network appliances) and effectively take remediation actions as required. This talk will do a deep dive on how Ansible can be used to assess the operational state of your IT infrastructure (especially network appliances) and effectively take remediation actions as required. The following will be demonstrated for both Linux as well as network devices. Collect the current operational state from the remote host and convert it into normalised structure data. Define the desired state criteria in a standard’s based format Validate the current state data against the pre-defined criteria to identify if there is any deviation. Take corrective remediation action as required.

uk: вхід без авторизації

name: State assessment and data validation using Ansible


uk: Комп'ютерні науки

description: The "pet vs cattle" thing is getting pretty long in the tooth, but the one thing one keeps hearing is that the management layer somehow always remains a pet. While there is certainly some truth to that - you don't want to rebuild your management plane every day - wouldn't it be cool if you could? The "pet vs cattle" thing is getting pretty long in the tooth, but the one thing one keeps hearing is that the management layer somehow always remains a pet. While there is certainly some truth to that - you don't want to rebuild your management plane every day - wouldn't it be cool if you could? In this talk we will show how to fully automate the deployment and configuration of Foreman using Ansible, which allows for reproducible setups, redeployments and testing environments that actually match production. The presented solution should not (and can not) replace working backups, but it might still save you when the restore isn't going as expected or someone asks to start "fresh" while keeping all the important details the same as before. We will show how to deploy Foreman from scratch in an reproducible way, reusing the same bits the project uses itself. This will also include plugins like Katello and Ansible for best possible client management later. We'll continue with integrating Foreman with compute resources and managing content in Katello, which will result in trivial deployments of further cattle systems from Foreman, which then can be managed via Ansible. The result is a set of playbooks that can be stored in a git repository and deployed at will.

uk: вхід без авторизації

name: your management layer should be cattle too


uk: Комп'ютерні науки

description: In this interview/conversation, acclaimed emulator programmer Randal Linden takes us on a journey down the depths of reverse engineering and emulator development. Rather than editing this conversation to fit a smaller time-slot, it is split across 3 parts, with a Live Q&A at the end of part 3. Part 1 highlights: Doom FX for the SNES Bleem! Reverse engineering the MIPS R3000 The Sega Dreamcast

uk: вхід без авторизації

name: Best Little Emulator Ever Made! - part 1/3


uk: Комп'ютерні науки

description: In this interview/conversation, acclaimed emulator programmer Randal Linden takes us on a journey down the depths of reverse engineering and emulator development. Rather than editing this conversation to fit a smaller time-slot, it is split across 3 parts, with a Live Q&A at the end of part 3. Part 2 highlights: Getting the first game running on Bleem! BUGS! Dynarec

uk: вхід без авторизації

name: Best Little Emulator Ever Made! - part 2/3


uk: Комп'ютерні науки

description: In this interview/conversation, acclaimed emulator programmer Randal Linden takes us on a journey down the depths of reverse engineering and emulator development. Rather than editing this conversation to fit a smaller time-slot, it is split across 3 parts, with a Live Q&A at the end of part 3. Part 3 highlights: Windows 95 Bleemcast! Learning reverse & emulator engineering

uk: вхід без авторизації

name: Best Little Emulator Ever Made! - part 3/3 + Live Q&A


uk: Комп'ютерні науки

description: Emulator authors often like to measure themselves by invoking the concept of cycle perfection. In practice that under- or over-samples many real machines. This talk instead floats a bus-centric model of emulation.

uk: вхід без авторизації

name: 'Cycle-perfect' is an imperfect marketing term: All about buses


Emulation 101: How anyone can do it

uk: Комп'ютерні науки

description: Ever wanted to write an emulator? Or understand how they work? In this talk you learn how to start writing your own emulator from the ground up. You'll see the basic methods used to emulate CPUs, memory, and graphics cards. For the keen, we'll also cover advanced emulation techniques, licensing issues, and history. There are a lot of old machines in the world, many are literally falling apart, and out of the consciousness of the programmers who once built them. But all deserved to be remembered. That's why we need more emulators developed in the open, so the knowledge isn't lost to history. By showing how easy it is, we hope to encourage others to do the same, regardless of their language of choice or which old computer they want to resurrect. With worked examples, live demos, and new games, there is a lot of easily accessible code to see, and advice on how (and where) to start writing emulators. The speaker is prolific developer Steven Goodwin who created the EMF emulator framework, and wrote 9 emulators during 2020. He is also a computer historian and part of the Centre for Computing History in Cambridge, England.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: RetroArch is a free, open-source and cross-platform frontend for emulators, game engines, video games, media players and other applications. The libretro API is designed to be fast, lightweight, portable, and without dependencies. Due to the number of systems and games it can play under a single user interface, RetroArch has grown immensely over the years, and has been well adopted by the emulation scene. Since its inception as SSNES and libsnes, libretro has grown much beyond its humble upbringings. libretro and RetroArch provide a way to connect different applications, emulators and game engines together in a single application. libretro has a unique mission design in turning the way applications are built on its head, by enabling the modularization of software. Instead of merely thinking in terms of a standalone application, software is redesigned and re-engineered to become a pluggable module that interfaces through a common API. Standalone applications implement this API to gain access to this module. Our belief is that by following this model, applications can be more easily updated and extended, since there is a clear separation between application and core domain. In this session, we will cover: What libretro is all about and its software model Interesting frontends and hardware you can use libretro cores and how to implement your own The ecosystem surrounding RetroArch What's next for the project Join Rob Loach, libretro maintainer, as he discusses how you can fully leverage the libretro API to bring modularized applications and systems together.

uk: вхід без авторизації

name: libretro: One API to Bring Them All: RetroArch, libretro, and the modularization it brings to the table


uk: Комп'ютерні науки

description: The open source emulation landscape is littered with abandoned projects. MAME has survived stock market crashes, a pandemic, major internal refactoring, half a dozen leadership changes, and persistent rumours of the project’s imminent death. Why is MAME still here? How does MAME continue to attract contributors? What are some of the issues a project this size faces?

uk: вхід без авторизації

name: Dragging MAME into the 21st century: Practicalities of a large project with two decades of history


uk: Комп'ютерні науки

description: Many emulators offer a CRT filter, an artist's rendition of classic video. This presentation describes emulation of the an entire NTSC or PAL video device, to produce an engineer's rendition — starting from sync discrimination and separation, through PLLs into scan placement and via QAM to extracting colour. In the implementation discussed work is split between CPU and GPU and a range of emulated source machines are demonstrated, including in-phase machines such as the Atari 2600, machines that routinely generate sync errors such as the ZX80, machines that generate a colour signal in software such as the Apple II, and interlaced machines such as the Acorn Electron.

uk: вхід без авторизації

name: Emulating the full NTSC stack: Creating objective video artefacts


uk: Комп'ютерні науки

description: The PlayStation 2, being the best-selling game console of all time, is a surprisingly complex beast. So, isn't it only fitting that its emulation in software is equally complicated? With PCSX2 developer GovanifY, we carefully peel back the layers of the world's most popular game console, and its most popular emulator. See why, twenty years later, it's now easier than ever to ＰＬ△Ｙ　ＩＮ　Ｙ◯ＵＲ　Ｗ╳ＲＬ□. Emotion Engine. Graphics Synthesizer. Built-in DVD player. DualShock. Broadband. Online. $299. Twelve years in production, nearly 4,000 titles, and over 150 million units sold worldwide. The PlayStation 2 is widely heralded as the most popular video game system of all time. Its unassuming, yet imposing black chassis hides a masterclass in system design. Sony's second-most popular product next to the Walkman, and unquestionably their most successful game console, the PS2 isn't without its faults - chief among them, its complexity. While a vast effort was made on the part of Sony's engineers, ironing out as many quirks as possible to ensure game development was smooth, even seemingly unsophisticated games had required specialized development steps to ensure satisfactory performance, unless they wanted their game to be mocked in the cutthroat sixth-generation-gamer media for having "last-gen" graphics. Why was it so difficult? After all, the CPU is a simple RISC, with a simplified FPU. The GPU, the fabled "Graphics Synthesizer", only draws scenes - no shaders. PCSX2, the PS2's de facto open-source emulation project, now has the greatest share of tested playable games and working software titles for its console, out of any emulator targeting consoles since then. Unfortunately for us, this compatibility came at the cost of complexity. The long-driven community effort to incrementally improve on it, brought with it legacy code with long, spindly strands which dig deep into the core codebase. Its C-centric codebase, while speedy, was hand-tuned to gain the maximum performance out of contemporary 32-bit Pentium 4 CPUs. The GUI, designed using wxWidgets, aimed for a mythological "middle-ground" of such modern platforms as X11R6, Windows XP, and Mac OS X Aqua. The project really was a product of its time; emulator development was highly fragmented among incompatible and proprietary video and sound APIs, and to compromise, a plugin interface haphazardly bolted on components, leading to needless headaches over trivial things like joystick input. These remnants of the past have kept coming to haunt us, and we've decided to put our foot down. Twenty years after the inaugural CVS push, it has come high time to reorganize and transform the shambling heap of code, and with the modernization of such a large project comes many discoveries - not only about the emulator software, but also its target machine. Points we'll touch on include: The PS2, and its architecture - and the cursed idiosyncrasies that developers and emulator authors have had to battle. Reverse engineering the PS2, and studying its behavior - following a game through, from the DVD, into the I/O subsystem, across the bus, through the cache and memory, across the vector units, and out to the TV. How PCSX2 works - how it is programmed and evolved to take advantage of modern hardware (and why that's a constantly moving target). Finally, we'll conclude with a deep dive into the new x86_64 JIT compilers coming to PCSX2, its clean core/GUI separation being made with portability in mind, notes about refactoring and scope management of a software system at-large with an active user base; new GUI targets, some infrastructure rework, and more!

uk: вхід без авторизації

name: The PlayStation 2: From Emotion to Emulation: Celebrating 20 Years of Reverse Engineering


uk: Комп'ютерні науки

description: For years now, driver development has been starting earlier in the product life-cycle. Using QEMU for liberating driver developers from being bound to hardware schedules isn't new. Not so common however, is adding support for new hardware to QEMU while the spec is still being revised. The coupling of driver development and emulation development helped find spec issues early, and allowed us to submit patches for a basic driver on the day that the specification wasreleased. This talk will discuss how we used QEMU to meet our goals, the challenges in enabling CXL 2.0 for QEMU, an review of what CXL is, an overview of the architecture and implementation, and ways in which we'd love to get help.

uk: вхід без авторизації

name: Compute Express Link in QEMU: Driver Development for Fashionably Late Hardware


uk: Комп'ютерні науки

description: I will demonstrate how to write a vectorized (parallel) Caesar cipher in RISC-V (in assembler) using the project's emulator. Using the emulator is necessary at this point for such an application because the vectorized extension to the RISC-V ISA is not standardized. I will further demonstrate how the emulator itself is able to emulate the execution of a single user-space application when it is actually designed to emulate an entire system. This will involve a demonstration and explanation of riscv-isa-sim, riscv-pk and their interaction.

uk: вхід без авторизації

name: The Ides of RISC-V: Writing & Testing a Parallel Caesar Cipher in RISC-V


uk: Комп'ютерні науки

description: Even to this day, there's something utterly captivating about bringing to life a piece of software effectively frozen in time, designed to run on what was originally a black box, by means of a device that one uses to check up on cat facts. Adding to this, it can even be enhanced and possibly perform better than its developers ever hoped for. If you also got to play around with your first computer in the early 2000s, chances are that console emulators were amongst the first pieces of software you've ever run on a computer. Submitting this talk was an endeavour to explore this unexplainable (or is it?) fascination by what seems to conceptually be a compatibility layer. More importantly, the talk aims to have you intrigued about emulation development and the scene in general in the year 2021, by presenting the significance of the emulation community in the context of education and history preservation. It will also highlight how emulation development is more accessible today compared to the early days of the likes of PSEmu Pro, Project64 and NO$GMB - thanks, in no small part, to the FOSS community. TLDR: this will focus on the "why" (rather than on the "how") you should have a go at writing your first emulator. Additional info: The intention is to provide people that can relate to the below points... solid programming background and grasp of computer science fundamentals naturally curious about the inner workings of computers a general interest in console history a little too sceptical as to what business they could have entering territory of the emudev Gandalfs of the 2000s that they looked up to during their school years [optional, but desired] having fond memories of their (even-then) ancient Pentium 3 struggling to handle Tekken 3 on bleem! (you get the picture) ... with good reasons as to why dipping their toes in emulation development is worth their time, and how writing an emulator is an awesome all-around learning experience, out of which you'll become a better engineer. Plus, amongst other, to highlight how such a journey is meaningful, rewarding and worthwhile -- as it lies within context you can relate to: seeing your childhood games come to life (or, on the remaining 99% of occasions: using the debugger that you wrote trying to figure out why you can't get past the first screen)

uk: вхід без авторизації

name: Do you even emulate, (Super Mario) bro?: How emulating a system can inspire you to improve as an engineer (no 3-wolf-moon shirt necessary)


uk: Комп'ютерні науки

description: With the growing popularity of Go many people are asking how to build a solid GUI. The language design to target concurrency and portability makes it a great match for cross-platform development. This talk shows how the Fyne toolkit is designed to help make beautiful and idiomatic native apps with Go. This talk explores the Fyne toolkit and what is new with the recently released version 2.0. We will explore the main features including canvas, widgets, data binding, test support and app store packaging. We will step through how to build an application using standard widgets, data binding and storage, and then see how it can be distributed for practically all graphical operating systems and app stores.

uk: вхід без авторизації

name: Building cross-platform Go GUIs fast using Fyne: Platform agnostic is the future of app development, and Go is the language of choice


uk: Комп'ютерні науки

description: kris nóva fills in for a cancelled talk talking about unit tests, TestMain() and reverse engineering an API with Go

uk: вхід без авторизації

name: kris nóva live (replaces CANCELLED Go-ing Secure)


uk: Комп'ютерні науки

description: In this talk we'll see how we can call Python function from Go "in memory" and with close to none serialization. Like tools, programming languages tend to solve problems they are designed to. You can use a knife to tighten a screw, but it’s better to use a screwdriver. Plus there is less chance of you getting hurt in the process. The Go programming language shines when writing high throughput services, and Python shines when used for data science. In this talk we'll explore a way to call Python/numpy code from Go in memory using some cgo glue. This approach is fast and risky, use at your own risk.

uk: вхід без авторизації

name: Calling Python from Go In Memory: Using 0 Serialization and ε Memory


Deploy a Go HTTP server in your browser

uk: Комп'ютерні науки

description: Have you ever thought to yourself "It would be nice to run this Go HTTP server directly in a browser for demonstration" ? No? Well I have! But it's not possible, right? A Go WebAssembly binary can run in browsers, but cannot serve HTTP... Or could it? Could we run a Go WebAssembly binary into a browser's ServiceWorker, and serve HTTP from it? Well let's find out!

uk: вхід без авторизації


uk: Комп'ютерні науки

description: I worked on the Go team at Google for about 10 years working on bits of everything, but primarily the standard library (net/http, etc) & its build system. In that time I wrote lots of Go, but almost primarily for Go itself. Joining a startup, I now finally get to use Go all day to build a real product (Tailscale) and it's super exciting. We use Go on the server and in 5 clients: Linux, Windows, macOS, iOS, Android.

uk: вхід без авторизації

name: Go at Tailscale: From writing Go to using Go


uk: Комп'ютерні науки

description: In 2020 we saw a huge spike in interest for RTC. Developers worked quickly to build new tools with the challenge of a socially distanced world. Go has really started to make strides in the RTC world with Pion. Easy deploy, great performance, memory safety and ability to prototype helped it take on C/C++. This talk shows you some basics on WebRTC, then how to use Pion and what you can build with it What does WebRTC give us? What technical real world limitations does WebRTC need to overcome to give us that? WebRTC broken down to 4 parts - Signaling - Connectivity - Encryption - Media/Data - Pion Connecting Using DataChannels Using Media

uk: вхід без авторизації

name: Drones, Virtual Reality and Multiplayer NES Games. The fun you can have with Pion WebRTC!


uk: Комп'ютерні науки

description: Go programmers now have access to an entire world of Bluetooth devices, the most popular Wireless Personal Area Network (WPAN) standard ever created, all using our favorite programming language, thanks to the aptly named "Go Bluetooth". Developers can write code to control Bluetooth Low Energy devices from standard Go programs running on desktop operating systems. In addition, developers can create Bluetooth Low Energy peripheral devices running bare-metal on chips made by Nordic Semiconductor, by using "Go Bluetooth" with TinyGo. This means you can write the code for both sides of your Bluetooth Low Energy wireless application all using Go. In this talk I will explain the concepts and show code by programming several live objects.

uk: вхід без авторизації

name: Go Without Wires: Programming Bluetooth Using Go and TinyGo


uk: Комп'ютерні науки

description: Currently, there are more and more ARM based datacenter hardware options on the market, and their performance has been continuously improving. Thus more and more users and customers are starting to consider using these datacenter hardware options for their business. Big Data is one of the most important areas. On the contrary, the open source ecosystem for Big Data on ARM is not that perfect: most of the software in the Big Data ecosystem does not care too much about running on ARM in advance, or developers have not officially tested their codes on ARM, and there are a lot of unsolved problems. In order to make those software solutions able to run on ARM, one has to search and read tons of articles and to do a lot of patches and build a numbers of dependencies on their own. And once the upstream changes or upgrades, there might be new problems since it is not tested on ARM in upstream. All these challenges made users concerned to use ARM for their business. In order to change this situation and make the Big Data open source ecosystem more friendly to ARM platform and its users, our team started by proposing adding ARM CI to those open source projects. By doing this, the projects will be fully tested on ARM and also all future changes will as well be tested on ARM. In the process, we fixed a lot of problems directly in upstream, which benefits all users. And then, we started to perform performance comparison tests between ARM and x86, to give users an overview of the status. And there are also large numbers of TODO items, for the future. In this session, you can learn the current status of ARM CI for Big Data ecosystem projects like Hadoop, Spark, Hbase, Flink, Storm, Kudu, Impala etc. and our efforts on fixing ARM related problems. We will also introduce our future plans.

uk: вхід без авторизації

name: Make life easier for big data users on Arm platform


uk: Комп'ютерні науки

description: LUMI is a new upcoming EuroHPC pre-exascale supercomputer with peak performance a bit over 550 petaflop/s. Many countries of LUMI consortium will have access on this system among other users. It is known that this system will be based on the next generation of AMD GPUs and this is a new environment for all of us. In this talk we discuss the AMD ecosystem, ROCm, which is open source and available on github. We present with examples the procedure to convert CUDA codes to HIP, among also how to port Fortran codes with hipfort. We discuss the utilization of other HIP libraries and we demonstrate performance comparison between CUDA and HIP on NVIDIA GPUs. We explore the challenges that scientists will have to handle during their application porting and also we provide step by step guidance.

uk: вхід без авторизації

name: Getting ready for the AMD GPUs: FOSDEM'21 HPC, Big Data and Data Science


uk: Комп'ютерні науки

description: Buildtest is an HPC testing framework to aid HPC facilities to perform acceptance testing for their system. HPC systems are growing in complexity, with a tightly coupled software and system stack that requires a degree of automation and continuous testing. In the past decade, two build frameworks (Spack, EasyBuild) have emerged and widely used in HPC community for automating build & installation process for scientific software. On the contrary, testing frameworks for HPC systems are limited to a few handful (ReFrame, Pavilion2, buildtest) that are in active development. In buildtest, users will write test recipes in YAML called buildspecs that buildtest process to generate a shell script. buildtest utilizes versioned-based JSON Schema for validating buildspecs and currently, we support two main schemas (compiler, script). The script schema and compiler schema are used for writing traditional shell-scripts (bash, sh, csh), python-scripts and single source compilation test. In this talk we will present an overview of buildtest and how one can write buildspecs. Furthermore, we will discuss Cori Testsuite in buildtest with several real examples on testing various components for Cori system at NERSC.

uk: вхід без авторизації

name: buildtest: HPC Testing Framework for Acceptance Testing


uk: Комп'ютерні науки

description: The ever increasing need for the ability to easily customize, reproduce and migrate applications and workflows are steadily increasing amongst the High Performance Computing (HPC)community,as non-traditional HPC software environments and applications are starting to require HPC resources to tackle “real world” scientific problems. In addition,traditional HPC software are becoming more complex and are often deployed on multiple different architectures.In this talk, we discuss the issues associated with the deployment of containerized environments on secure HPC systems and how we successfully deployed traditional and non-traditional HPC applications on a secure large scale HPC production system with HPC specific containers.

uk: вхід без авторизації

name: Deploying Containerized Applications on Secure Large Scale HPC Production Systems.


uk: Комп'ютерні науки

description: This talk introduces DiscoPoP, a tool which identifies parallelization opportunities in sequential programs and suggests programmers how to parallelize them using OpenMP. The tool first identifies computational units which, in our terminology, are the atoms of parallelization. Then, it profiles memory accesses inside the source code to detect data dependencies. Mapping dependencies to CUs, we create a data structure which we call the program execution tree (PET). Further, DiscoPoP inspects the pet of a program to find parallel design patterns and parallelization suggestions in terms of OpenMP constructs and clauses. By far, DiscoPoP detects doall, reduction, pipeline, task parallelism, and geometric decomposition in a program. We used DiscoPoP to create OpenMP versions of 49 sequential benchmarks and compared them with the code produced by three state-of-the-art parallelization tools: Our codes are faster in most cases with average speedups relative to any of the three ranging from 1.8 to 2.7. Moreover, we analyzed the LULESH program and an astrophysics simulation code with DiscoPoP. In LULESH, we identify most of the parallelization opportunities which have been parallelized by expert programmers manually. In the astrophysics code, DiscoPoP finds unexploited parallelism opportunities and achieves a speed-up of up to 35%.

uk: вхід без авторизації

name: DiscoPoP: A tool to identify parallelization opportunities in sequential programs and suggest OpenMP constructs and clauses


uk: Комп'ютерні науки

description: The European Environment for Scientific Software Installations (EESSI, pronounced as “easy”) is a collaboration between different HPC sites and industry partners, with the common goal to set up a shared repository of scientific software installations that can be used on a variety of systems, regardless of which flavor/version of Linux distribution or processor architecture is used, or whether it is a full-size HPC cluster, a cloud environment or a personal workstation. The concept of the EESSI project was inspired by the Compute Canada software stack, and consists of three main layers: - a filesystem layer leveraging the established CernVM-FS technology, to globally distribute the EESSI software stack; - a compatibility layer using Gentoo Prefix, to ensure compatibility with different client operating systems (different Linux distributions, macOS, Windows Subsystem for Linux); - a software layer, hosting optimized installations of scientific software along with required dependencies, which were built for different processor architectures, and where archspec, EasyBuild and Lmod are leveraged. We use Ansible for automating the deployment of the EESSI software stack. Terraform is used for creating cloud instances which are used for development, building software, and testing. We also employ ReFrame for testing the different layers of the EESSI project, and the provided installations of scientific software applications. Finally, we use Singularity containers for having clean software build environments and for providing easy access to our software stack, for instance on machines without a native CernVM-FS client. In this talk, we will present how the EESSI project grew out of a need for more collaboration to tackle the challenges in the changing landscape of scientific software and HPC system architectures. The project structure will be explained in more detail, covering the motivation for the layered approach and the choice of tools, as well as the lessons learned from the work done by Compute Canada. The goals we have in mind and how we plan to achieve them going forward will be outlined. Finally, we will demonstrate the current pilot version of the project, and give you a feeling of the potential impact.

uk: вхід без авторизації

name: EESSI: One Scientific Software Stack to Rule Them All


uk: Комп'ютерні науки

description: Over the years, there has been extensive efforts to improve Apache Spark SQL performance. This talk will introduce the new Adaptive Query Execution (AQE) framework and how it can automatically improve user query performance. AQE leverages query runtime statistics to dynamically guide Spark's execution as queries run along. The talk will go over the main features in AQE and provide examples on how it can improve on the previous static query plans. Finally, we'll present the significant improvements we have seen on the TPC-DS benchmark with AQE. Examples of the new runtime optimizations include selecting the right join type (broadcast-hash-join vs. sort-merge-join), dealing with data skew, and automatically selecting the number of shuffle (reducer) partitions.

uk: вхід без авторизації

name: Faster Spark SQL: Adaptive Query Execution in Spark v3


uk: Комп'ютерні науки

description: Many emerging scientific workflows that target high-end HPC systems require a complex interplay with resource and job management software (RJMS). However, portable, efficient and easy-to-use scheduling of these workflows is still an unsolved problem. In this talk, we present Flux, a next-generation RJMS designed specifically to address the key scheduling challenges of modern workflows in a scalable, easy-to-use, and portable manner. At the heart of Flux lies its ability to be seamlessly nested within batch allocations created by itself as well as other system schedulers (e.g., SLURM, MOAB, LSF, etc), serving the target workflows as their “personal RJMS instances”. In particular, Flux’s consistent and rich set of well-defined APIs portably and efficiently support those workflows that can feature non-traditional patterns such as complex co-scheduling, massive ensembles of small jobs and coordination among jobs in an ensemble. We will also cover how the Flux-Framework project is structured around open-source development, including our use of the Collective Code Construction Contract (C4), RFCs, LGPL, and various online open-source platforms. We discuss how these choices of open-source processes have influenced the repo structure, the code, our collaborations, and even the sub-teams within the project. Expected prior knowledge / intended audience: Audience should have basic knowledge of batch job systems; knowledge of or experience with running scientific workflows is a plus. There will be some background on common workflows in the talk. This will be interesting to HPC users, workflow developers, and admins. Speaker bio: Stephen Herbein is a computer scientist in Livermore Computing at Lawrence Livermore National Laboratory. His research interests include batch job scheduling, parallel IO, and data analytics. He is a part of the Flux team, developing next-generation IO-aware and multi-level schedulers for HPC.

uk: вхід без авторизації

name: Flux: Solving Exascale Workflow and Resource Challenges: Plus - How Open-Source Drives Our Project Design


uk: Комп'ютерні науки

description: Many advanced data processing paradigms fit incredibly well to the parallel-architecture that GPU computing offers, which has resulted in the continuously growing adoption of graphics card for general purpose computing. Exciting advancements in the open source Vulkan Project are enabling developers to take advantage of general purpose GPU computing capabilities in cross-vendor mobile and desktop GPUs including AMD, Qualcomm, NVIDIA & friends. In this talk we will learn to write GPU accelerated algorithms which will be able to run on virtually any GPU hardware, including non-NVIDIA GPUs. We'll introduce an intuition and key concepts around GPU computing, as well as show how you can get started with the Vulkan Kompute framework with only a handful of lines of C++ or Python code. Throughout the talk we will also dive into the GPU computing terminology around asynchronous & parallel workflow processing, cover the core principles of machine learning data parallelism, explain the hardware concepts of GPU queues & queueFamilies, and talk about how advancements in new and upcoming graphics cards will enable for even bigger speedups (such as the NVIDIA Ampere GA10x architecture which will support up to 3 parallel queue processing workloads).

uk: вхід без авторизації

name: GPU Computing Made Simple with the C++ Vulkan SDK & the C++ Kompute Framework (AMD, Qualcomm, NVIDIA & Friends)


uk: Комп'ютерні науки

description: There are dozens of domain specific languages that allow scientists to describe complex workflows. From the humble generic GNU Make to large scale platforms like Apache Airflow you would think that there is something there to satisfy everyone. All of these systems have one thing in common: they have a strong focus on partitioning large computations and scheduling work units, but when it comes to managing the software environments that are the context of each of the planned computations, they are often remarkably shy to offer opinionated solutions. Software management and deployment often seems like an afterthought. Workflow language designers increasingly seem to be following the devops trend of resorting to opaque application bundles to satisfy application and library needs. While this strategy has some advantages it also comes with downsides that rarely seem to be weighed carefully. We present the Guix Workflow Language --- not as a solution to the question of software deployment in HPC workflows, but as an instance of convergent evolution: growing a workflow language out of a generic reproducible software management and deployment system (GNU Guix) instead of sprucing up a workflow language with software deployment features. We hope to encourage a discussion about the current state of workflow languages in HPC: when it comes to software and distributed computations, are we approaching the peak or do we circle a local maximum?

uk: вхід без авторизації

name: Growing a Workflow Language with GNU Guix: Extending a reproducible software deployment system for HPC


uk: Комп'ютерні науки

description: Performance analysis is critical for identifying and eliminating bottlenecks in both serial and parallel programs. There are many profiling tools that can instrument serial and parallel codes, and gather performance data. However, analytics and visualization tools that are general, easy to use, and programmable are limited. Hatchet is an open-source Python library that can read profiling output of several tools, and enables the user to perform a variety of programmatic analyses on hierarchical performance profiles. Hatchet brings the power of modern data science tools such as pandas to bear on performance analysis. In this talk, we present a set of techniques and operations that build on the pandas data analysis library to enable analysis of performance profiles. These techniques, implemented in Hatchet, enable the filtering, aggregation, and pruning of structured data. In addition, Hatchet facilitates comparing performance profiles from multiple executions to understand the differences between them.

uk: вхід без авторизації

name: Analyzing Performance Profiles using Hatchet


uk: Комп'ютерні науки

description: The Container ecosystem spans from spawning a process into an isolated and constrained region of the kernel at bottom layer, building and distributing images just above to discussions on how to schedule a fleet of containers around the world at the very top. While the top layers get all the attention and buzz, this session will base-line the audiences' understanding of how to execute containers. The talk will briefly recap the history of containers and containers in HPC and describe the challenges we faced and how the community overcame them; eventually converging towards a sustainable model to run HPC application at scale using containers. By attending this sessions viewers will come to understand that HPC runtime engines are not far apart anymore and what to look out for when adopting HPC containers in 2021. We'll also poke at the next layer up - Image build and distribution - to describe the challenge after we picked the runtime engine.

uk: вхід без авторизації

name: HPC Container Engines: State-of-the-Art: Base-line our understanding of what the execution of HPC containers looks like in 2021.


uk: Комп'ютерні науки

description: In this session we are presenting our experiences with migrating from traditional HPC to cloud-native HPC using a compute-heavy scientific workflow that is usually carried out on national supercomputing centers. Our scientific application are atomistic biomolecular simulations using the GROMACS molecular dynamics simulation toolkit. Molecular dynamics simulations are computationally challenging in two respects: First, individual simulations usually need to be parallelized over as many resources (cores, GPUs, nodes) as practicable, to reduce the time to solution from months down to weeks or possibly less. Second, we as scientists are not so much interested in individual simulations, but rather in average properties of the simulated systems. The latter can however only be addressed with ensemble runs of many (typically hundreds) slightly different replicas of the system, thus requiring an enormous amount of compute time. Cloud-based HPC can address both challenges: The cloud offers as much compute time as desired, plus the possibility to efficiently scale individual simulations over multiple instances connected by a high-performance interconnect. We build a cloud-based HPC cluster in a straightforward and reproducible way by simplifying software management with SPACK and cluster lifecycle management with AWS ParallelCluster. With the SPACK package manager, diverse hardware is easily incorporated into a single cluster, e.g. instances with AMD, ARM, and Intel processors, instances with (multiple) GPUs and instances with high-performance interconnect. On the cluster, we used several representative biomolecular systems to benchmark the GROMACS performance on a various hardware available in the cloud, both on individual instances as well as across multiple instances. This way we uncover which instances deliver the highest performance or the best performance-to-price ratio for GROMACS simulations. As a next step, we are preparing to run a large ensemble consisting of 20,000 individual simulations in the cloud using all resources that are globally available to reduce the time to solution as much as possible. In principle, such an ensemble simulation - which would occupy a medium-sized compute cluster for weeks or even months - could then finish within a day. Containerization will be a key concept here to provide a common software environment across a vast variety of hardware.

uk: вхід без авторизації

name: Hitchhiker's guide from traditional HPC Cluster to containerized ensemble run at scale: How to lift GROMACS into a cloudy SLURM cluster and evolve to run GROMACS globally using containers.


uk: Комп'ютерні науки

description: This talk gives an overview of the various open source HPC-related research projects at the Institute for Scientific Computing at TU Darmstadt. For each of the projects, we present an overview of the tool and its application from a user perspective. In addition, we cover more technical details, e.g., main programming language, build system or the general development stack. We have consolidated our efforts into a single GitHub space at https://github.com/tudasc. MACH MACH (MPI Assertion Checking) is a Clang/LLVM-based static analysis tool to detect if one of the recently proposed MPI-assertions can be applied to an MPI communicator. A programmer may specify these assertions, such that the MPI Library can use more optimized operations, as some of the standard's constraints are relaxed in that case, e.g., strict message ordering. MACH statically checks whether the relaxation of some of the MPI standard's guarantees will cause errors in an application. The current version supports C and C++ applications, with the scope of the analysis being limited to one translation unit. The project is available under the Apache-2.0 License. PIRA The Performance Instrumentation Refinement Automation framework is a profiler built on top of Clang/LLVM and Score-P. It performs automatic instrumentation refinement for performance measurements of sequential and MPI-parallel applications. To reduce runtime overhead it constructs, fully automatically, filter lists for Score-P based on static source-code features and profile information. The project is available under BSD 3-clause license. SimAnMo The Simulated Annealing Modeler is a software tool to model the runtime behavior of programs depending on the size of one input parameter x. Its modeling procedure is based on runtime measurements for small values of x which result in acceptable runtimes and are so-called training points. SimAnMo supports modeling for programs with polynomial behavior, i.e., the program's runtime t(x) only grows in polynomial terms with the size of the input x. In addition, SimAnMo recognizes and models and exponential growth in the runtime. SimAnMo is highly configurable and parameterizable and automatically produces PDF reports of runtime behavior. The project is available under the MIT License. TypeART TypeART is a memory type sanitizer based on the LLVM compiler framework. In particular, TypeART ist used for type correctness checks of MPI communication buffers and checkpointing libraries. In both cases, data is passed as a type-less void buffer, and the user is required to specify its type manually. This is error prone. To avoid a mismatch of types during runtime, TypeART instruments memory allocations (heap, stack, global) and extracts their type information to enable runtime comparisons. Detected mismatches are reported at runtime. The project is available under BSD 3-clause license.

uk: вхід без авторизації

name: Open Source HPC Research Tools at the Institute for Scientific Computing


uk: Комп'ютерні науки

description: In high-performance computing (HPC), interactive access to HPC systems and the ability to perform experiments in rapid-prototyping environments are getting more important. Jupyter notebooks have become a popular tool to create and share documents that contain narrative text, visualizations and live code, and the xeus-cling kernel provides support for native C/C++ code via the Cling interpreter. In this talk, we will present how we extended these technologies to support parallel programming with MPI and OpenMP, the de-facto standards in HPC. In the context of parallel programming, the resulting environment supports rapid prototyping and e-learning equally well. We will present an overview about its capabilities, demonstrate selected use cases and resources that we developed. In addition, we incorporated support for runtime correctness checking of MPI and OpenMP parallel programs. We will explain how we added support to write out binary programs from Jupyter notebooks and how to run code under the control of existing open source correctness tools. In the technical part of this talk, we will focus on two contributions to xeus-cling that are most important for our use cases: support for printf and the ability to launch MPI programs. The implementation of the printf family relies on wrapper functions that are injected into LLVM's just-in-time (JIT) compilation. To launch MPI programs, we extended xeus-cling to write out binary programs based on the incremental abstract syntax tree (AST) that Cling builds internally. We will also discuss why we chose this path over teaching the interpreter to start multiple processes.

uk: вхід без авторизації

name: An Environment for Interactive Parallel Programming with MPI and OpenMP


uk: Комп'ютерні науки

description: In this session, we will present an open-source stream processing architecture, based on Spark Structured Streaming, for automating model monitoring with some experiment results. We use Kafka to log model predictions, KFServing for model serving and a Kubernetes operator for the deployment and configuration of the different components. As for the analysis of inference data, we implemented an extendable monitoring framework on top of Spark Structured Streaming to detect outliers and data drift. In recent years, MLOps has emerged to bring DevOps processes to the machine learning (ML) development process, aiming at more automation in the execution of repetitive tasks and at smoother interoperability between tools. Among the different stages in the ML lifecycle, model monitoring involves the continuous supervision of the model performance over time, involving the combination of techniques in four categories: outlier detection, data drift detection, explainability and adversarial attacks. Nowadays, most of the available model monitoring tools follow a scheduled batch processing approach or analyse model performance using isolated subsets of the inference data. However, for the continuous monitoring of models, stream processing platforms show several advantages, including support for continuous data analytics, scalable processing of large amounts of data and first-class support for window-based aggregations useful for concept drift detection.

uk: вхід без авторизації

name: Scalable, Automated ML Model Monitoring with KFServing and Hopsworks


uk: Комп'ютерні науки

description: In this talk we explore two programming models for GPU accelerated computing in a Fortran application: OpenMP with target directives and CUDA. We use an example application Riemann problem, a common problem in fluid dynamics, as our testing ground. This example application is implemented in GenASiS, a code being developed for astrophysics simulations. While OpenMP and CUDA are supported on the Summit supercomputer, its successor, an exascale supercomputer Frontier, will support OpenMP and translate CUDA-like models via HIP. In this work, we study and describe the differences and trade-offs between these programming models in terms of efforts and performance. Our hope is to provide insights on productivity and portability issues within these programming models.

uk: вхід без авторизації

name: Lessons in Programming Model Comparisons Using OpenMP and CUDA for Targetting GPUs


uk: Комп'ютерні науки

description: With the end of Moore’s law, improving single-core processor performance can be extremely difficult to do in an energy-efficient manner. One alternative is to rethink conventional processor design methodologies and propose innovative ideas to unlock additional performance and efficiency. In an attempt to overcome these difficulties, we propose a compiler-informed non-speculative out-of-order commit processor, that attacks the limitations of in-order commit in current out-of-order cores to increase the effective instruction window and use critical resources of the core more intelligently. We build our core based on the open source RISC-V ISA. The hardware and software ecosystem around RISC-V enables building custom hardware and experimenting new HW/SW cooperative ideas. While modern out-of-order processors execute instructions out-of-order to increase instruction-level parallelism, they retire instructions and manage their limited resources (register file, load/store queue, etc.) in program order to guarantee safe instruction retirement. However, this implementation requires instructions to wait for all preceding branches to resolve in order to release their critical resources, which leaves a significant amount of performance on the table. We propose a HW/SW co-design that enables non-speculative out-of-order commit in a lightweight manner, improving performance and efficiency. The key insight of our work is that identifying true branch dependencies, if properly understood, could lead to higher performance. Dependency analysis shows that not all instructions depend on the most recent branch in the reorder buffer and therefore, there are missed opportunities to improve the performance by not releasing the critical resources of independent instructions. Our processor employs a HW/SW co-design where the compiler detects true branch dependencies that enables the hardware to manage critical resources more intelligently. Also, we introduce a new interface between hardware and OS to enable precise exception handling by exposing recent changes of out-of-order committed instructions. In our talk, we will look at the potential of our out-of-order commit core for HPC workloads. Initial studies with C-based HPC applications show promising results, and we intend to show results for a variety of additional HPC workloads to evaluate the potential of the design. We believe our HW/SW co-design might be a way to build the processors in the future. This work will appear in proceedings of the 26th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2021).

uk: вхід без авторизації

name: Accelerating HPC applications with Out-of-Order Commit Processors


uk: Комп'ютерні науки

description: XALT is a tool run on clusters to find out what programs and libraries are run. XALT uses the environment variable LD_PRELOAD to attach a shared library to execute code before and after main(). This means that the XALT shared library is a developer on every program run under linux. This shared library is part of every program run. This talk will discuss the various lessons about routine names and memory usage. Adding XALT to track container usage presents new issues because of what shared libraries are available in the container.

uk: вхід без авторизації

name: XALT: Lessons from attaching to almost every program in Linux