LINUX.ORG.RU

История изменений

Исправление Obey-Kun, (текущая версия) :

Пока что (т.к. это двухмерная задача) от нескольких секунд до 10-15 минут. В трёхмерной без использования видеокарты считать будет несколько суток, если не больше. Код чего именно? Вообще, софт (двухмерная его версия), будет под GPLv3 через пару недель (вместе с релизом).

Конкретно расчёты выглядят так:

void Domain::doSteps(unsigned int inNumSteps)
{
    for (unsigned int i = 0; i < inNumSteps; ++i) {
        moveInTime();
    }
}

static void moveBlockInTime(SoilBlock &b)
{
    b.moveInTime();
}

static void moveHeatSurfaceInTime(HeatSurface &s)
{
    s.moveInTime();
}

void Domain::moveInTime()
{
    // Вот распаралелливаемая часть
    std::for_each(mHeatSurfaces.begin(),
                  mHeatSurfaces.end(),
                  moveHeatSurfaceInTime);
    std::for_each(mSoilBlocks.begin(),
                  mSoilBlocks.end(),
                  moveBlockInTime);
}

Исходная версия Obey-Kun, :

Пока что (т.к. это двухмерная задача) от нескольких секунд до 10-15 минут. В трёхмерной без использования видеокарты считать будет несколько суток, если не больше. Код чего именно? Вообще, софт (двухмерная его версия), будет под GPLv3 через пару недель (вместе с релизом).