Compile the program using gcc -o timing1 timing1.c -lm. Run the program 10 times with a command line argument of 5000000. Report the timings observed in the output. Repeat the process with arguments 10000000 and 20000000. Discuss the results observed, in particular regarding the resolution of the timing procedure used and the reproducibility of the results between runs. From the observed results, estimate the time needed to compute a square root.

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter8: Advanced Method Concepts
Section: Chapter Questions
Problem 8RQ
icon
Related questions
Question

Compile the program using gcc -o timing1 timing1.c -lm.
Run the program 10 times with a command line argument of 5000000. Report the timings observed in the output. Repeat the process with arguments 10000000 and 20000000.
Discuss the results observed, in particular regarding the resolution of the timing procedure used and the reproducibility of the results between runs. From the observed results,
estimate the time needed to compute a square root.

* timing1.c: test timing functions
*/
#include "stdio.h"
#include "time.h"
#include "sys/time.h"
#include "math.h"
#include "stdlib.h"
volatile double gtod (void)
{
static struct timeval tv;
static struct timezone tz;
gettimeofday (&tv,&tz);
return tv.tv_sec + 1.e-6*tv.tv_usec;
}|
int main(int argc, char** argv)
{
}
int natoi (argv[1]);
clock_t clk;
double t, t_cpu, t_real;
clk = clock());
t = gtod ();
/* do something */
double sum = 0.0;
int i;
for (i = 0; i<n; i++)
sum += sqrt((double) i);
long long delta_clock = clock()
clock() - clk;
t_cpu = ( (double) delta_clock ) / CLOCKS_PER_SEC;
t_real = gtod () - t;
printf(" clock: %1511d \n", delta_clock );
printf(" t cpu: %15.6f s\n", t_cpu);
printf(" t real: %15.6f s\n", t_real);
Transcribed Image Text:* timing1.c: test timing functions */ #include "stdio.h" #include "time.h" #include "sys/time.h" #include "math.h" #include "stdlib.h" volatile double gtod (void) { static struct timeval tv; static struct timezone tz; gettimeofday (&tv,&tz); return tv.tv_sec + 1.e-6*tv.tv_usec; }| int main(int argc, char** argv) { } int natoi (argv[1]); clock_t clk; double t, t_cpu, t_real; clk = clock()); t = gtod (); /* do something */ double sum = 0.0; int i; for (i = 0; i<n; i++) sum += sqrt((double) i); long long delta_clock = clock() clock() - clk; t_cpu = ( (double) delta_clock ) / CLOCKS_PER_SEC; t_real = gtod () - t; printf(" clock: %1511d \n", delta_clock ); printf(" t cpu: %15.6f s\n", t_cpu); printf(" t real: %15.6f s\n", t_real);
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Embedded software development
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,