/***************************************************************************** * * waiter_freq04.c 2012.06.10 Smythies * Mods as per chnages to the waiter program. * * waiter_freq04.c 2012.05.07 Smythies * A program to build a script for use with the waiter program. * Everything is coded herein. Re-compile to change things. * This one sweeps the load for different numbers of processes. * *****************************************************************************/ #include #include #include #include #define LOOPS_PER_USEC 207.547 /* Tight loops per second. s15.smythies.com. CONFIG_NO_HZ=n or y kernels */ void main(int argc, char **argv){ double load, period, s, c, freq; int l; printf("#! /bin/bash\n"); printf("uptime >freq_peter35\n"); freq = 180.0; /* 1 processes or 180 Hertz total */ for(load = 0.05; load <= 0.96; load = load + 0.05){ period = 1.0 / freq; c = period * load; s = period - c; if(s < 0.0){ printf("Doug: you have screwed up. Sleep time is negative: %lf\n", s); exit (-1); } /* endif */ l = (int) (c * LOOPS_PER_USEC * 1000000 + 0.5); printf("# Freq = %4lf Hz; Processes = 1; Load = %4.2lf\n", freq, load); printf("../c/waiter 1 180 %d %d %d 1\n", (int) (10.0 * freq + 0.5), l, (int) (s * 1000000 + 0.5)); printf("uptime >>freq_peter35\n"); } /* endfor */ printf("\n"); freq = 90.0; /* 2 processes or 180 Hertz total */ for(load = 0.05; load <= 0.96; load = load + 0.05){ period = 1.0 / freq; c = period * load; s = period - c; if(s < 0.0){ printf("Doug: you have screwed up. Sleep time is negative: %lf\n", s); exit (-1); } /* endif */ l = (int) (c * LOOPS_PER_USEC * 1000000 + 0.5); printf("# Freq = %4lf Hz; Processes = 2; Load = %4.2lf\n", freq, load); printf("../c/waiter 2 180 %d %d %d 1\n", (int) (10.0 * freq + 0.5), l, (int) (s * 1000000 + 0.5)); printf("uptime >>freq_peter35\n"); } /* endfor */ printf("\n"); freq = 60.0; /* 3 processes or 180 Hertz total */ for(load = 0.05; load <= 0.96; load = load + 0.05){ period = 1.0 / freq; c = period * load; s = period - c; if(s < 0.0){ printf("Doug: you have screwed up. Sleep time is negative: %lf\n", s); exit (-1); } /* endif */ l = (int) (c * LOOPS_PER_USEC * 1000000 + 0.5); printf("# Freq = %4lf Hz; Processes = 3; Load = %4.2lf\n", freq, load); printf("../c/waiter 3 180 %d %d %d 1\n", (int) (10.0 * freq + 0.5), l, (int) (s * 1000000 + 0.5)); printf("uptime >>freq_peter35\n"); } /* endfor */ printf("\n"); freq = 45.0; /* 4 processes or 180 Hertz total */ for(load = 0.05; load <= 0.96; load = load + 0.05){ period = 1.0 / freq; c = period * load; s = period - c; if(s < 0.0){ printf("Doug: you have screwed up. Sleep time is negative: %lf\n", s); exit (-1); } /* endif */ l = (int) (c * LOOPS_PER_USEC * 1000000 + 0.5); printf("# Freq = %4lf Hz; Processes = 4; Load = %4.2lf\n", freq, load); printf("../c/waiter 4 180 %d %d %d 1\n", (int) (10.0 * freq + 0.5), l, (int) (s * 1000000 + 0.5)); printf("uptime >>freq_peter35\n"); } /* endfor */ printf("\n"); freq = 36.0; /* 5 processes or 180 Hertz total */ for(load = 0.05; load <= 0.96; load = load + 0.05){ period = 1.0 / freq; c = period * load; s = period - c; if(s < 0.0){ printf("Doug: you have screwed up. Sleep time is negative: %lf\n", s); exit (-1); } /* endif */ l = (int) (c * LOOPS_PER_USEC * 1000000 + 0.5); printf("# Freq = %4lf Hz; Processes = 5; Load = %4.2lf\n", freq, load); printf("../c/waiter 5 180 %d %d %d 1\n", (int) (10.0 * freq + 0.5), l, (int) (s * 1000000 + 0.5)); printf("uptime >>freq_peter35\n"); } /* endfor */ printf("\n"); freq = 30.0; /* 6 processes or 180 Hertz total */ for(load = 0.05; load <= 0.96; load = load + 0.05){ period = 1.0 / freq; c = period * load; s = period - c; if(s < 0.0){ printf("Doug: you have screwed up. Sleep time is negative: %lf\n", s); exit (-1); } /* endif */ l = (int) (c * LOOPS_PER_USEC * 1000000 + 0.5); printf("# Freq = %4lf Hz; Processes = 6; Load = %4.2lf\n", freq, load); printf("../c/waiter 6 180 %d %d %d 1\n", (int) (10.0 * freq + 0.5), l, (int) (s * 1000000 + 0.5)); printf("uptime >>freq_peter35\n"); } /* endfor */ } /* endprogram */