Download Shmem Programming Manual - Pittsburgh Supercomputing Center

Transcript
Program Listing
int getSize (char *str)
{
int
size;
char
mod[32];
switch (sscanf (str, "%d%1[mMkK]", &size, mod))
{
case 1:
return (size);
case 2:
switch (*mod)
{
case ’m’:
case ’M’:
return (size << 20);
case ’k’:
case ’K’:
return (size << 10);
default:
return (size);
}
default:
return (-1);
}
}
double gettime()
{
struct timeval tv;
gettimeofday(&tv, 0);
return (tv.tv_sec * 1000000 + tv.tv_usec);
}
double dt (double *tv1, double *tv2)
{
return (*tv1 - *tv2);
}
void usage (char *name)
{
fprintf (stderr, "Usage: %s [flags] nwords [maxWords] [incWords]\n", name);
fprintf (stderr, "
%s -h\n", name);
exit (1);
}
void help
{
printf
printf
printf
printf
printf
printf
printf
printf
(char *name)
("Usage: %s [flags] nwords [maxWords] [incWords]\n", name);
("\n");
("
Flags may be any of\n");
("
-n number
repititions to time\n");
("
-e
everyone print timing info\n");
("
-h
print this info\n");
("\n");
("
Numbers may be postfixed with ’k’ or ’m’\n");
Programming Examples 3-11