#!/usr/bin/python """Time-sharing simulation. Many users are using a cluster. They submit 100 computations at random seconds. How loaded are the most-loaded seconds? """ import numpy import random import sys def loads(users, seconds): zz = numpy.zeros(seconds) for ii in range(users): seconds = set() for n in range(100): # each user uses the cluster 100 seconds per hour s = random.randrange(len(zz)) while s in seconds: s = random.randrange(len(zz)) seconds.add(s) zz[list(seconds)] += 1 return sorted(zz)[-40:] if __name__ == '__main__': print loads(3 if len(sys.argv) == 1 else int(sys.argv[1]), 3600 if len(sys.argv) <= 2 else int(sys.argv[2]))