Beispiel #1
0
void runSimulation()
{
    CellInitializer *init = new CellInitializer(256,256,30000);
    StripingSimulator<Cell> sim(init,
        MPILayer().rank() ? 0 : new NoOpBalancer());

    int outputFrequency = 100;

    PPMWriter<Cell> *ppmWriter = 0;
    if (MPILayer().rank() == 0) {
        ppmWriter = new PPMWriter<Cell>(
            &Cell::temp,
            0.0,
            10.0,
            "gaussSeidel",
            outputFrequency,
            Coord<2>(1, 1));
    }

    CollectingWriter<Cell> *ppmAdapter = new CollectingWriter<Cell>(
        ppmWriter);
    sim.addWriter(ppmAdapter);

    outputFrequency = 1000;
    sim.addWriter(new TracingWriter<Cell>(outputFrequency, init->maxSteps() ));


    sim.run();
}
Beispiel #2
0
int hpx_main()
{
    {
        CellInitializer *init = new CellInitializer();

        SimulatorType sim(
            init,
            std::vector<double>(1, 1.0), // number an relative speed of update groups
            new TracingBalancer(new OozeBalancer()),
            100, // load balancing period
            1 // ghost zone width
            );

        // fixme
        // int outputFrequency = 1;
        // sim.addWriter(
        //     new HpxWriterCollectorType(
        //         sink
        //     ));

        sim.addWriter(
            new TracingWriterType(
                1,
                init->maxSteps(),
                1));

        sim.run();
    }

    return hpx::finalize();
}
Beispiel #3
0
void runSimulation()
{
    srand(1234);
    int outputFrequency = 1;
    CellInitializer *init = new CellInitializer();
    SerialSimulator<Cell> sim(init);
    sim.addWriter(
        new PPMWriter<Cell>(
            &Cell::state,
            CellToColor(),
            "./ants",
            outputFrequency,
            Coord<2>(8, 8)));
    sim.addWriter(
        new AntTracer(
            outputFrequency,
            init->maxSteps()));

    sim.run();
}
Beispiel #4
0
void runSimulation()
{
    int outputFrequency = 1;
    CellInitializer *init = new CellInitializer();

    StripingSimulator<ConwayCell> sim(
        init,
        MPILayer().rank() ? 0 : new TracingBalancer(new OozeBalancer()),
        10);

    sim.addWriter(
        new BOVWriter<ConwayCell>(
            Selector<ConwayCell>(&ConwayCell::alive, "alive"),
            "game",
            outputFrequency));

    sim.addWriter(
        new TracingWriter<ConwayCell>(
            1,
            init->maxSteps()));

    sim.run();
}
Beispiel #5
0
void runSimulation()
{
    int outputFrequency = 100;
    int numSteps = 10000;
    int factor = pow(MPILayer().size(), 1.0 / 3.0);

    CellInitializer *init = new CellInitializer(factor, numSteps);

    HiParSimulator<Cell, RecursiveBisectionPartition<3> > sim(
        init,
        MPILayer().rank() ? 0 : new TracingBalancer(new NoOpBalancer()),
        numSteps,
        1);

    if (MPILayer().rank() == 0) {
        sim.addWriter(
            new TracingWriter<Cell>(outputFrequency, init->maxSteps()));
    }

    sim.addWriter(
        new BOVWriter<Cell>(
            Selector<Cell>(&Cell::temp, "temperature"),
            "jacobi3d",
            outputFrequency));


#ifdef LIBGEODECOMP_WITH_VISIT
    VisItWriter<Cell> *visItWriter = 0;
    if (MPILayer().rank() == 0) {
        visItWriter = new VisItWriter<Cell>("jacobi", outputFrequency);
        visItWriter->addVariable(&Cell::temp, "temperature");
    }
    sim.addWriter(new CollectingWriter<Cell>(visItWriter));
#endif

    sim.run();
}