Ejemplo n.º 1
0
void runThread() {
    int unitsOfWork = (int) LoteryScheduler_GetWorkOfCurrentThread(Scheduler);
    void (*updateCallback)(double, double, int) = NULL;
    void (*workFinishedCallback)(double) = NULL;
    updateCallback = Scheduler->preemptive ? updateCallback_preemptive : updateCallback_notPreemptive ;
    workFinishedCallback = threadFinishedCallback;
    executeThreadWork(unitsOfWork,updateCallback, workFinishedCallback);
}
Ejemplo n.º 2
0
    void numaLoop(int numaNode, int numberOfThreads)
    {
        m_timers.start(omp_get_max_threads());

#pragma omp parallel num_threads(numberOfThreads)
        {
            // tie thread to a NUMA node
            numa_run_on_node(numaNode);
            numa_set_preferred(numaNode);

            executeThreadWork();
        }   // end omp parallel

        m_timers.stop();

        assert(m_queue.unsafe_size() == 0);
    }
Ejemplo n.º 3
0
    void loop()
    {
        m_timers.start(omp_get_max_threads());
        m_idle_count = 0;

#pragma omp parallel
        {
            if (gopt_memory_type == "mmap_node0")
            {
                // tie thread to first NUMA node
                numa_run_on_node(0);
                numa_set_preferred(0);
            }

            executeThreadWork();
        }   // end omp parallel

        m_timers.stop();

        assert(m_queue.unsafe_size() == 0);
    }