1

Я много тестировал приложения, пробовал разные библиотеки, потоки, распределение операций и т.д. Я хочу, чтобы иметь возможность быстро создавать графики из моих данных запуска.

Данные выводятся в файл, разделенный табуляцией, который концептуально разделен на левую половину и правую половину. Каждая строка представляет собой отдельную конфигурацию выполнения.

Левая половина представляет собой различные параметры конфигурации, а правая половина представляет собой последовательность времени выполнения. (Например, мы можем запустить конфигурацию 20 раз, чтобы обеспечить равномерное среднее значение)

Я хочу быстро иметь возможность построить графики этих данных и / или вычислить значения, такие как стандартное отклонение.

Например, я бы указал столбец в правой половине, который будет использоваться в качестве оси X, а остальные столбцы в правой половине будут использоваться для идентификации конфигурации выполнения, используемой для генерации строки. По оси Y всегда будет время выполнения (или нормализованная производительность)

Например, левая сторона может быть

| Threads | Elements | AlgorithmA | AlgorithmB |
|---------+----------+------------+------------|
|       1 |      100 | t1a        | t1b        |
|       2 |      100 | t1a        | t1b        |
|       3 |      100 | t1a        | t1b        |
|       1 |   100000 | t1a        | t1b        |
|       2 |   100000 | t1a        | t1b        |
|       3 |   100000 | t1a        | t1b        |
|---------+----------+------------+------------|
|       1 |      100 | t2a        | t1b        |
|       2 |      100 | t2a        | t1b        |
|       3 |      100 | t2a        | t1b        |
|       1 |   100000 | t2a        | t1b        |
|       2 |   100000 | t2a        | t1b        |
|       3 |   100000 | t2a        | t1b        |
|---------+----------+------------+------------|
|       1 |      100 | t2a        | t2b        |
|       2 |      100 | t2a        | t2b        |
|       3 |      100 | t2a        | t2b        |
|       1 |   100000 | t2a        | t2b        |
|       2 |   100000 | t2a        | t2b        |
|       3 |   100000 | t2a        | t2b        |
|---------+----------+------------+------------|
|       1 |      100 | t1a        | t2b        |
|       2 |      100 | t1a        | t2b        |
|       3 |      100 | t1a        | t2b        |
|       1 |   100000 | t1a        | t2b        |
|       2 |   100000 | t1a        | t2b        |
|       3 |   100000 | t1a        | t2b        |
|---------+----------+------------+------------|

Если бы осью X были потоки, то в каждой строке было бы 8 строк с 3 точками данных, чтобы отфильтровать только один элемент. Если бы ось X была элементами, то было бы 16 строк, каждая строка с 2 точками данных, тогда я бы отфильтровал ее только до одного уровня потока.

Мой гугл-фу не помог мне найти то, что мне нравится, возможно, я ищу неправильные ключевые слова ... поэтому мои вопросы - какое приложение вы можете порекомендовать, чтобы решить мою проблему и сделать мои дни менее повторяющимися.

1 ответ1

2

Вы можете сделать почти все это в Python с IPython, matplotlib и pandas, с некоторыми statsmodels добавленными для хорошей меры. Существуют и другие зависимости, такие как NumPy, так что читайте документы.

Я настоятельно рекомендую прочитать Python для анализа данных, поскольку он проведет вас через все упомянутые пакеты и многое другое, хотя базовые знания Python предполагаются.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .