I don't work on high-level software. Is Adaptyst for me?

Adaptyst is meant to be a flexible tool applicable to the entire computing spectrum: from embedded to high-performance/distributed computing. This is where its name comes from: Adaptive Systems. Therefore, as long as your work touches computing (e.g. networking, storage, FPGAs for data processing, operating systems, software for microcontrollers), the tool is for you!

Your doubts are perfectly valid though if you don’t work on high-level software, so here is also the breakdown of how Adaptyst is envisaged to help you, depending on nature of your job. You will see later in the documentation that the tool may be used from many different angles and not just from the high-level software profiling perspective. For example, thanks to the APIs, you can implement modules representing system/hardware components to be analysed by Adaptyst if there’s no out-of-the-box support for your specific use case.

Due to its early development stage, Adaptyst may not be able to do everything you want right away: we’re constantly working on new updates and you can contribute as well to bridge the gaps.

I’m an embedded/low-level software engineer (including driver engineer)
  • Profiling your embedded software code, including bare-metal (i.e. running without an operating system)
  • Detecting and potentially solving automatically code-related performance bottlenecks in your driver
  • Suggesting that a performance issue lies elsewhere than your code, e.g. in hardware
I’m an ASIC/FPGA engineer
  • Detecting performance bottlenecks in your hardware design if its execution is non-deterministic (e.g. data-dependent)
  • Determining whether your design bottlenecks a system it is part of and how this can be potentially fixed automatically
  • Discovering what parts of a given compute workflow can benefit from your design
I’m an operating system / kernel engineer
  • Profiling various parts of an operating system such as schedulers, file systems, memory management etc.
  • Determining how an operating system influences a given computing workflow performance-wise and how this can be potentially improved automatically
  • Investigating whether some parts of an operating system can benefit from extra hardware such as custom accelerators, storage solutions etc.
I’m a compiler engineer
  • Profiling your compiler implementation
  • Determining whether some parts of your compiler can benefit from hardware acceleration
  • Contributing to the tool by adding new optimisations that Adaptyst can explore in a given compute workflow
I’m a network engineer
  • Profiling your networking setup
  • Determining whether your network bottlenecks a system it is part of and how this can be potentially fixed automatically
I’m a computer architect
  • Investigating automatically the best architecture of a computer, compute unit etc. to maximise performance of given compute workflows under specific constraints
I’m a system architect
  • Investigating automatically the best architecture of a computer system (consisting e.g. of several peripherals, storage solutions, servers, networking setups etc.) to maximise performance of given compute workflows under specific constraints
  • Researching how best to integrate system components from different parts of the computing spectrum (e.g. embedded and distributed computing)
  • Producing performance and optimisation information that can be relayed to specialists working on specific parts of a given computing system/product/project