##############################################################################
# Copyright (c) 2016 ZTE Corporation and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
name: compute
description: QTIP Performance Index of compute
system_info:
  - name: product
    description: production commercial name
  - name: cpu
    description: cpu brand
  - name: os
    description: operating system version
  - name: kernel
    description: the core of a computer's operating system
  - name: memory
    description: memory usage
  - name: disk
    description: disk usage
formula: weighted arithmetic mean
sections: # split based on different application
  - name: SSL
    description: cryptography and SSL/TLS performance
    formula: geometric mean
    metrics:
      - name: ssl_rsa
        description: performance of cryptographic using RSA cipher algorithm
        formula: geometric mean
        workloads:
          - name: rsa_sign_512
            description: rsa 512 bits sign per second
          - name: rsa_verify_512
            description: rsa 512 bits verify per second
          - name: rsa_sign_1024
            description: rsa 1024 bits sign per second
          - name: rsa_verify_1024
            description: rsa 1024 bits verify per second
          - name: rsa_sign_2048
            description: rsa 2048 bits sign per second
          - name: rsa_verify_2048
            description: rsa 2048 bits verify per second
          - name: rsa_sign_4096
            description: rsa 4096 bits sign per second
          - name: rsa_verify_4096
            description: rsa 4096 bits verify per second
      - name: ssl_aes
        description: >
          performance of advanced encryption standard (AES) cipher algorithm in cipher block chaining (CBC) mode
        formula: geometric mean
        workloads:
          - name: aes_128_cbc_16_bytes
            description: aes 128 bits key cbc on 16 bytes blocks
          - name: aes_128_cbc_64_bytes
            description: aes 128 bits key cbc on 64 bytes blocks
          - name: aes_128_cbc_256_bytes
            description: aes 128 bits key cbc on 256 bytes blocks
          - name: aes_128_cbc_1024_bytes
            description: aes 128 bits key cbc on 1024 bytes blocks
          - name: aes_128_cbc_8192_bytes
            description: aes 128 bits key cbc on 8192 bytes blocks
  - name: DPI
    description: deep packet inspection
    formula: geometric mean
    metrics:
      - name: dpi_throughput
        description: deep packet inspection throughput
        workloads:
          - name: dpi_pps
            description: DPI packets per second
          - name: dpi_bps
            description: DPI bits per second
  - name: memory
    description: cache and memory performance
    formula: geometric mean
    metrics:
      - name: floatmem
        description: >
          measures the maximum possible cache and memory performance while reading and writing certain blocks of data
          (starting from 1Kb and further in power of 2) continuously through FPU
        workloads:
          - name: copy
            description: >
              transfers data from one memory location to another,
              i. e. copies it (A = B)
          - name: scale
            description: >
              modifies the data before writing by multiplying with a certain
              constant value, i. e. scales it (A = m*B).
          - name: add
            descrption: >
              reads data from the first memory location, then reads from the
              second, adds them up and writes the result to the third place
              (A = B + C).
          - name: triad
            description: >
              reads data from the first memory location, scales it, then adds
              data from the second one and writes to the third place
              (A = m*B + C).
      - name: intmem
        description: >
          measures the maximum possible cache and memory performance while reading and writing certain blocks of data
          (starting from 1Kb and further in power of 2) continuously through ALU
        workloads:
          - name: copy
            description: >
              transfers data from one memory location to another,
              i. e. copies it (A = B)
          - name: scale
            description: >
              modifies the data before writing by multiplying with a
              certain constant value, i. e. scales it (A = m*B).
          - name: add
            descrption: >
              reads data from the first memory location, then reads from the
              second, adds them up and writes the result to the third place
              (A = B + C).
          - name: triad
            description: >
              reads data from the first memory location, scales it, then adds
              data from the second one and writes to the third place
              (A = m*B + C).
  - name: arithmetic
    description: arithmetic computing speed
    formula: geometric mean
    metrics:
      - name: integer
        description: >
          measures and compare the performance of computers, focusing on string handling without floating point
          operations.
        workloads:
          - name: dhrystone_lps
            description: dhrystone loops per second
      - name: floating
        description: >
          measures the speed and efficiency of floating-point operations
        workloads:
          - name: whetstone_MWIPS
            description: whetstone million instructions per second