On some platforms, the MPI_Wtime function essentially uses gettimeofday() under 
the covers.

See this stackoverflow question about -mno-sse:

    
http://stackoverflow.com/questions/3687845/error-with-mno-sse-flag-and-gettimeofday-in-c



On Nov 10, 2014, at 8:35 AM, maxinator333 <maxinator...@googlemail.com> wrote:

> Hello again,
> 
> I have a piece of code, which worked fine on my PC, but on my notebook 
> MPI_Wtime and MPI_Wtick won't work with the -mno-sse flag specified. 
> MPI_Wtick will return 0 instead of 1e-6 and MPI_Wtime will also return always 
> 0. clock() works in all cases.
> 
> The Code is:
> 
> #include <iostream>
> #include <ctime>
> #include <mpi.h>
> #include <unistd.h> // sleep
> 
> using namespace std;
> int main(int argc, char* argv[])
> {
>    MPI_Init(NULL,NULL);
>    cout << "Wtick: " << MPI_Wtick();
>    for (int i=0; i<10; i++) {
>        clock_t   t0  = MPI_Wtime();
>        sleep(0.1);
>        //sleep(1);     // SLEEP WON'T BE COUNTED FOR CLOCK!!! FUCK, SAME 
> SEEMS TO BE TRUE FOR MPI_WTIME
>        // ALSO MPI_WTIME might not be working with -mno-sse!!!
>        clock_t   t1    = MPI_Wtime();
>        cout << "clock=" << clock() << ", CLOCKS_PER_SEC=" << CLOCKS_PER_SEC;
>        cout << ", t0=" << t0 << ", t1=" << t1 << ", dt=" << 
> double(t1-t0)/CLOCKS_PER_SEC << endl;
>    }
>    return 0;
> }
> 
> I compile and run it in cygwin 64bit, Open MPI: 1.8.3 r32794 and g++ (GCC) 
> 4.8.3 with the following command lines and outputs:
> 
> $ rm matrix-diverror.exe; mpic++ -g matrix-diverror.cpp -o 
> matrix-diverror.exe -Wall -std=c++0x -mno-sse; ./matrix-diverror.exe
> Wtick: 0clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> clock=451, CLOCKS_PER_SEC=1000, t0=0, t1=0, dt=8.37245e-314
> 
> Versus the Version without SSE deactivated:
> 
> $ rm matrix-diverror.exe; mpic++ -g matrix-diverror.cpp -o 
> matrix-diverror.exe -Wall -std=c++0x; ./matrix-diverror.exe
> Wtick: 1e-06clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> clock=483, CLOCKS_PER_SEC=1000, t0=1415626322, t1=1415626322, dt=0
> 
> 
> 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post: 
> http://www.open-mpi.org/community/lists/users/2014/11/25727.php


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to