[AIAB-01] Create the System and its associated components

First of all, let's create a System.

In the provided repository you can find a file called system.yaml with the following content:

name: renaissance
description: The renaissance benchmark application

Create the corresponding system as follows:

akamas create system system.yaml

You can directly see it in the UI under the Systems menu:

You can always list all systems and verify that a system has been correctly created:

akamas list systems

At this point, you need to add the two components corresponding to the JVM and the Renaissance application. For both these components you can take advantage of the corresponding pre-defined Optimization Packs. An Optimization Pack provides for each specific technology the recommended Parameters, Metrics, and Telemetry Providers.

Install the Java Optimization Pack

Since Renaissance is a Java-based application, we can take advantage of the corresponding Akamas Optimization Pack.

In order to install the Akamas Optimization Pack for Java OpenJDK 11, you can either run the following command

akamas install optimization-pack Java-OpenJDK

or simply operate from the UI, by installing it from the section listing all the Optimization Packs available in your installation:

which should result in this Optimization Pack being installed (and thus possibly ready to be de-installed)

Notice: you only need to install an Optimization Pack once. So if an Optimization Pack has already been installed there is no need to follow these instructions once again. You can verify which Optimization Packs are already installed directly from the UI or by executing the following command:

akamas list optimization-packs

Create the JVM component

Now that the Optimization Pack has been installed, you can create the JVM component for this system.

The file comp_jvm.yaml contains the following definition for our system:

name: jvm
description: The JVM running the application
componentType: java-openjdk-11

Create the corresponding component for the renaissance system:

akamas create component comp_jvm.yaml renaissance

You can now see the JVM component in the UI:

You can always list all components in a system and verify that they have been correctly created:

akamas list components renaissance

Install the Renaissance Optimization Pack

At this point, you can install the Optimization Pack for Renaissance. This Optimization Pack is needed to tell Akamas which metrics you are going to optimize. Our goal for this study is to minimize the benchmark response time, and to do so you need to create a component with the response time metric. For each benchmark execution, we will also track the CPU and memory usage of the Java process, so in the Optimization Pack we have included those metrics as well.

Let's now install the Renaissance Optimization Pack. This time, you will use a JSON file already provided in the Akamas-in-a-box installation (or if you're using a cloud instance from your laptop, you can download it from our GitHub repository here):

akamas install optimization-pack optpack_renaissance.json

You can easily create new Optimization Packs with the Akamas CLI to optimize your application-specific parameters! See the akamas build optimization-pack command to create the JSON file, and the product documentation to learn more.

Create the Renaissance component

Now you can create the renaissance component.

The file comp_renaissance.yaml defines the component as follows:

name: renaissance
description: The Java application included in Renaissance benchmarks
componentType: renaissance

Create the component by specifying the YAML file and the name of the system renaissance:

akamas create component comp_renaissance.yaml renaissance

You can now see the renaissance component and the associated response time, CPU, and memory usage metrics:

Now we need to move to the next step and define where to collect metrics for this system.

Last updated