Как эффективно анализировать результаты моделирования с различными степенями свободы?

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

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

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

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

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

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

| Темы | Элементы | АлгоритмА | АлгоритмБ | | --------- + ---------- + ------------ + ------------ | | 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 ответ

Решение

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

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

Другие вопросы по тегам