Introduction to Queueing Petri Nets: Modeling Formalism, Tool Support and Case Studies
Presenter: Samuel Kounev, Karlsruhe Institute of Technology (KIT), Germany
Duration: 1.5 hours, the slides can be downloaded here
Overview:
Queueing Petri Nets are a powerful formalism that can be exploited for modeling distributed systems and analyzing their performance and scalability. By combining the mod- eling power and expressiveness of queueing networks and stochastic Petri nets, Queueing Petri Nets provide a number of advantages. In this tutorial, we present an introduction to Queueing Petri Nets first introducing the modeling formal- ism itself and then presenting several modeling case studies to demonstrate how Queueing Petri Nets can be used for performance modeling and analysis. As part of the tutorial, we present a demonstration of QPME (Queueing Petri net Modeling Environment), an open-source tool for stochastic modeling and analysis of systems using QPNs.
Best Practices for Writing and Managing Performance Requirements
Presenter: Andre Bondi, Siemens Corporate Research, USA
Duration: half day, the slides can be downloaded here
Overview:
Functional requirements refer to how a piece of a system functions or what it does given specific inputs. Performance requirements stipulate such non-functional attributes as how many units of work should be processed per hour, how quickly, and with how many objects under management or users logged in. They are crucial inputs for architects and system designers when performing such tasks as specifying information flows, defining deployment scenarios, choosing software platforms, sizing system configurations, determining required levels of redundancy, and identifying system measurement instrumentation. They are also essential inputs to the design of performance and scalability tests. Performance is known to be the single biggest cause of the cancellation of software projects, and is a competitive differentiator. It follows that performance requirements are a prerequisite to the success of a software project.
In this tutorial, we shall look at criteria for high-quality performance requirements, including algebraic consistency, measurability, testability, and linkage to business and engineering needs. We shall show methods for presenting and managing performance requirements that will improve their chances of being accepted by architects, developers, testers, contract negotiators, and purchasers; and of their being successfully implemented and tested. Attendees will be invited to participate in classroom exercises in which they will interpret and draft performance requirements and develop procedures for validating them.
Programming and Simulating Fused Devices - OpenCL and Multi2Sim
Presenters: Rafael Ubal and Perhaad Mistry, Northeastern University
Duration: half day, slides PartA and PartB
Overview:
Many-core processors, general-purpose GPUs, and in general, architectures exploiting high amounts of thread-level parallelism are the current trend in the processor market. Recently. Accelerated Processing Units (APUs) have been released, where both the CPU and the GPU share a single address space. This design enables closely coupled interaction between CPU and GPU cores, avoiding communication overheads through the PCI bus. The OpenCL programming standard provided by the Khronos Group allows us to program CPUs, GPUs and APUs in a cross-platform manner.
A cycle-accurate simulation framework is an essential tool for performance evaluation and architectural exploration. The Multi2Sim project (www.multi2sim.org) started in 2007 as an open-source initiative to cover some limitations of existing simulation frameworks targeting superscalar, multithreaded, and multicore processors.
Currently, Multi2Sim integrates an AMD GPU model at the ISA level with it an x86 multicore processor model. This allows the computer architect to carry out research into new architectures where different classes of devices share an address space.
This tutorial consists of two sections. In the first section, an introduction to the OpenCL programming language is presented, including code examples, code optimizations, and memory management for APUs. The second section provides an introduction to Multi2Sim, discussing simulation capabilities and working examples. Execution demonstrations will be presented using Multi2Sim's visualization environment, and detailed guidelines will be distributed to reproduce experiments.
This tutorial is targeted primarily at computer architecture researchers, computer/computational scientists, and graduate students interested in architectural simulation, performance analysis, and compiler optimizations for heterogeneous devices. The tutorial is also helpful to application developers interested in optimizing their application performance on multicore processors and GPUs using OpenCL.