private void buildTaskGroupStatistics() {
        List<Statistic> schedulerTaskList = null;
        List<Statistic> schedulerGroupList = null;

        Statistic groupStatistic = null;

        // Sum up all values
        for (int i = 0; i < schedulers.length; ++i) {
            schedulerTaskList = taskGraphStatistics.get(i);
            schedulerGroupList = taskGroupStatistics.get(i);

            for (Statistic taskStatistic : schedulerTaskList) {
                // Get the correct task group list
                switch (taskStatistic.nodeCount) {
                case 10:
                    groupStatistic = schedulerGroupList.get(0);
                    break;
                case 50:
                    groupStatistic = schedulerGroupList.get(1);
                    break;
                case 100:
                    groupStatistic = schedulerGroupList.get(2);
                    break;
                case 300:
                    groupStatistic = schedulerGroupList.get(3);
                    break;
                case 500:
                    groupStatistic = schedulerGroupList.get(4);
                    break;
                }

                groupStatistic.edgeCount += taskStatistic.edgeCount;
                groupStatistic.cpDuration += taskStatistic.cpDuration;
                groupStatistic.algorithmDuration += taskStatistic.algorithmDuration;
                groupStatistic.singleBlockExecutionTime += taskStatistic.singleBlockExecutionTime;
                groupStatistic.scheduleCpRatio += taskStatistic.scheduleCpRatio;
                groupStatistic.scheduleCpVariance += taskStatistic.scheduleCpVariance;
                groupStatistic.throughput += taskStatistic.throughput;
                groupStatistic.averageCommunicationTime += taskStatistic.averageCommunicationTime;
            }
        }
        // Now devide all by taskGraphGroupSize to get
        for (List<Statistic> groupStatisticList : taskGroupStatistics) {
            for (Statistic statistic : groupStatisticList) {
                statistic.edgeCount = statistic.edgeCount / taskGraphGroupSize;
                statistic.cpDuration = statistic.cpDuration / taskGraphGroupSize;
                statistic.algorithmDuration = statistic.algorithmDuration / taskGraphGroupSize;
                statistic.singleBlockExecutionTime = statistic.singleBlockExecutionTime
                        / taskGraphGroupSize;
                statistic.scheduleCpRatio = statistic.scheduleCpRatio / taskGraphGroupSize;
                statistic.scheduleCpVariance = statistic.scheduleCpVariance / taskGraphGroupSize;
                statistic.throughput = statistic.throughput / taskGraphGroupSize;
                statistic.averageCommunicationTime = statistic.averageCommunicationTime
                        / taskGraphGroupSize;
            }
        }
    }