Skip to content

Auto-tuning of I/O accelerators

In this cookbook, we optimize a pure software I/O acceleration library, called FIOL developed by Atos, for an I/O benchmark. This accelerator relies on a dynamic data preload strategy to prefetch in memory chunks of files that are regularly accessed, in order to speed-up pseudo-random file accesses. The FIOL accelerator is highly sensitive to its parametrization, as a poorly set parametrization can trigger too many prefetches, slowing down the application, or too little, which limits the speed-up potential of the accelerator. It is important to find the right balance, in order to prefetch only zones of the file that will be accessed again.

Configuration file

The following configuration file can be used to register the FIOL component.

components:
  small_read_optimizer:
    cli_command: fastio=yes
    parameters:
      sequence_length:
        env_var: True
        type: int
        default: 100
      binsize:
        env_var: True
        type: int
        default: 1048576
      cluster_threshold:
        env_var: True
        type: int
        default: 2
      prefetch_size:
        env_var: True
        type: int
        default: 20971520

It is launched through the slurm plugin fastio=yes and has four variables that can be passed as environment variables.

Experiment example

We use the Web interface to launch an experiment with the FIOL experiment. Based on previous works, we use genetic algorithms.

TODO screenshot