Page 1 of 1

flpins = 0; MFLOPS = 0.0000

PostPosted: Wed Mar 31, 2010 2:09 pm
by zixzie
Hi,
I ran a very simple test flops.c (available here http://spiral.cs.drexel.edu/wiki/Papi370Ubuntu910).
This was what I got:
Real_time: 8.358779 Proc_time: 13.935387 Total flpins: 0 MFLOPS: 0.000000
Can anyone explain to me why the flpins and MFLOPS is 0?
My system is Ubuntu 9.10 (2.6.31) with an Intel i7.
Thanks.

Re: flpins = 0.0000; MFLOPS = 0.0000

PostPosted: Wed Mar 31, 2010 3:05 pm
by jagode00
I ran the same flops.c test on our i7 machine:
$ uname -a
Linux gonzo 2.6.31-perfctr #1 SMP Thu Sep 24 10:17:37 EDT 2009 x86_64 GNU/Linux

testing both cases, perfctr and perf_events. In both cases I get reasonable values for flpins and MFLOPS.
perfctr v2.6:
Real_time: 7.691261 Proc_time: 7.681456 Total flpins: 2001175424 MFLOPS: 260.520325
perf_events:
Real_time: 7.628023 Proc_time: 7.625648 Total flpins: 2000166656 MFLOPS: 262.294647

Two questions:
1) What PAPI version are you using?
2) What do you get when you run one of PAPI's ctests, e.g. <papi-src-dir>/ctests/first?

Thanks,
heike.

Re: flpins = 0; MFLOPS = 0.0000

PostPosted: Fri Apr 02, 2010 2:24 pm
by zixzie
Hi,
1. My PAPI version is 3.7.2
2. The result of running first.c
Code: Select all
Test case 1: Non-overlapping start, stop, read.
-----------------------------------------------
Default domain is: 1 (PAPI_DOM_USER)
Default granularity is: 1 (PAPI_GRN_THR)
Using 20000000 iterations of c += a*b
-------------------------------------------------------------------------
Test type   :        1           2           3           4           5
PAPI_FP_INS:            0            0            0            0            0
PAPI_TOT_CYC:     63611959     60030384    120361818    180383830    180383830
-------------------------------------------------------------------------
Verification:
Row 1 Column 1 at least 20000000
% difference between PAPI_FP_INS: 1 & 2: nan
% difference between PAPI_TOT_CYC 1 & 2: 105.97
Column 1 approximately equals column 2
Column 3 approximately equals 2 * column 2
Column 4 approximately equals 3 * column 2
Column 4 exactly equals column 5
first.c                                  FAILED
Line # 150
Error: PAPI_FP_INS

It failed to run first.c, due to PAPI_FP_INS.
Thanks.
I was unable to upload an attachment.

Re: flpins = 0; MFLOPS = 0.0000

PostPosted: Thu Apr 15, 2010 4:53 pm
by jagode00
Sorry that it took me so long to come back to you!

I have tested with the same PAPI version (3.7.2.) on our i7 machine. I still cannot reproduce what you are seeing. Here is the output I get for the first ctest:

Test case 1: Non-overlapping start, stop, read.
-----------------------------------------------
Default domain is: 1 (PAPI_DOM_USER)
Default granularity is: 1 (PAPI_GRN_THR)
Using 20000000 iterations of c += a*b
-------------------------------------------------------------------------
Test type : 1 2 3 4 5
PAPI_FP_INS: 40000541 40000573 80001099 120001671 120001671
PAPI_TOT_CYC: 62829633 62714677 125310882 188043650 188043650
-------------------------------------------------------------------------
Verification:
Row 1 Column 1 at least 20000000
% difference between PAPI_FP_INS: 1 & 2: 100.00
% difference between PAPI_TOT_CYC 1 & 2: 100.18
Column 1 approximately equals column 2
Column 3 approximately equals 2 * column 2
Column 4 approximately equals 3 * column 2
Column 4 exactly equals column 5


Please send me the config.log file. Hopefully this will shed light on the issues here.
Thanks,
heike.

Re: flpins = 0; MFLOPS = 0.0000

PostPosted: Wed Sep 05, 2012 1:17 pm
by victoria1986
Hello everyone.
I decided to post my questionin the same thread.
When I run flops.c example, it's fine, i get the values.
But when I try to paste all papi directive and functions I get flps and mlops=0. May be someone had that issue already?
here is my code

//PAPI initialization
float real_time, proc_time, mflops;
long long flpins;
int retval, fip=0;
retval = PAPI_library_init( PAPI_VER_CURRENT );
if ( retval != PAPI_VER_CURRENT )
fprintf(stderr,"PAPI library version mismatch!\n");

if ( PAPI_query_event( PAPI_FP_INS ) == PAPI_OK )
fip = 1;
else if ( PAPI_query_event( PAPI_FP_OPS ) == PAPI_OK )
fip = 2;
else {

printf( "PAPI_FP_INS and PAPI_FP_OPS are not defined for this platform.\n" );
}

PAPI_shutdown( );
if ( fip > 0 )

{
if ( fip == 1 ) {
if ( ( retval = PAPI_flips( &real_time, &proc_time, &flpins, &mflops ) ) < PAPI_OK )
fprintf(stderr,"Problem reading flips\n");}
else {
if ( ( retval = PAPI_flops( &real_time, &proc_time, &flpins, &mflops ) ) < PAPI_OK )
fprintf(stderr,"Problem reading flops\n");

}
for ( i = 0; i < 2 * n; i = i + 2 )
{
z0 = 0.0;
z1 = 0.0;
x[i] = z0;
z[i] = z0;
x[i+1] = z1;
z[i+1] = z1;
}
if ( fip == 1 )
{
if ( ( retval = PAPI_flips( &real_time, &proc_time, &flpins, &mflops ) ) < PAPI_OK )
fprintf(stderr,"Problem reading flips2\n");
}
else {
if ( ( retval =PAPI_flops( &real_time, &proc_time, &flpins,&mflops ) ) < PAPI_OK )
fprintf(stderr,"Problem reading flops2\n");
}
if ( fip == 1 )
{
printf( "Real_time: %f Proc_time: %f Total flpins: ", real_time,proc_time );
}
else {
printf( "Real_time: %f Proc_time: %f Total flpops: ", real_time,proc_time );
}

printf("Flops: %lld ",flpins);
printf( " MFLOPS: %f\n", mflops );
}
I will appreciate any suggestion, thank you