summaryrefslogtreecommitdiffstats
path: root/resources/roles/ramspeed/tasks/main.yml
blob: 6473d576979891485d540fe686df051182af293c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
##############################################################################
# Copyright (c) 2017 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: making ramspeed working directory
  file:
    path: "{{ cwd }}"
    state: directory
  tags: [setup]

- name: download ramspeed/ramsmp
  unarchive:
    src: http://www.alasir.com/software/ramspeed/ramsmp-3.5.0.tar.gz
    dest: "{{ cwd }}"
    remote_src: yes
  tags: [setup]

- name: build ramsmp
  command: ./build.sh
  args:
    chdir: "{{ cwd }}/ramsmp-3.5.0"
    creates: ramsmp
  tags: [setup]

- name: intmem benchmarking
  command: ./ramsmp -b 3 -l 5 -p 1
  args:
    chdir: "{{ cwd }}/ramsmp-3.5.0"
  register: ramsmp_intmem_out
  tags: [run]

- name: floatmem benchmarking
  command: ./ramsmp -b 6 -l 5 -p 1
  args:
    chdir: "{{ cwd }}/ramsmp-3.5.0"
  register: ramsmp_floatmem_out
  tags: [run]

- name: collect integer memory metrics from ramspeed
  collect:
    string: "{{ ramsmp_intmem_out.stdout }}"
    patterns:
      - '^INTEGER\s+BatchRun\s+Copy:\s+?(?P<integer_copy>\d+\.\d+)\sMB/s$'
      - '^INTEGER\s+BatchRun\s+Scale:\s+?(?P<integer_scale>\d+\.\d+)\sMB/s$'
      - '^INTEGER\s+BatchRun\s+Add:\s+?(?P<integer_add>\d+\.\d+)\sMB/s$'
      - '^INTEGER\s+BatchRun\s+Triad:\s+?(?P<integer_triad>\d+\.\d+)\sMB/s$'
      - '^INTEGER\s+BatchRun\s+AVERAGE:\s+?(?P<integer_average>\d+\.\d+)\sMB/s$'
    dump: 'ramsmp-intmem.log'
  register: intmem_metrics
  tags: [collect]

- name: collect float memory metrics from ramspeed
  collect:
    string: "{{ ramsmp_floatmem_out.stdout }}"
    patterns:
      - '^FL-POINT\s+BatchRun\s+Copy:\s+?(?P<float_copy>\d+\.\d+)\sMB/s$'
      - '^FL-POINT\s+BatchRun\s+Scale:\s+?(?P<float_scale>\d+\.\d+)\sMB/s$'
      - '^FL-POINT\s+BatchRun\s+Add:\s+?(?P<float_add>\d+\.\d+)\sMB/s$'
      - '^FL-POINT\s+BatchRun\s+Triad:\s+?(?P<float_triad>\d+\.\d+)\sMB/s$'
      - '^FL-POINT\s+BatchRun\s+AVERAGE:\s+?(?P<float_average>\d+\.\d+)\sMB/s$'
    dump: 'ramsmp-floatmem.log'
  register: floatmem_metrics
  tags: [collect]

- name: create memory metrics report
  template:
    src: "{{ qtip_resources }}/template/mem-metrics.j2"
    dest: "{{ qtip_reports }}/mem-metrics"
  delegate_to: localhost
  tags: [report]