1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #!/usr/bin/env python import logging import multiprocessing import math import numpy as np import sys from multiprocessing import JoinableQueue as Queue, Process as Thread from matplotlib import pyplot as plt dbg = multiprocessing.get_logger().info def plot_figure(queue, dqueue): while True: nfig = queue.get() try: dbg("plot %s" % nfig) x = np.arange(nfig*math.pi/100, 5+nfig*math.pi/100, 0.1); y = np.sin(x) f = plt.figure(nfig) ax = f.add_subplot(111) ax.plot(x, y) ax.set_title(str(nfig)) f.savefig('%s.pdf' % nfig) plt.close(nfig) queue.task_done() dbg("done %s" % nfig) finally: dqueue.put(nfig) def main(): logger = multiprocessing.log_to_stderr() logger.setLevel(logging.INFO) nthreads = int(sys.argv[1]) if len(sys.argv) > 1 else 2 nfig = int(sys.argv[2]) if len(sys.argv) > 2 else 10 # start threads fqueue = Queue() dqueue = Queue() threads = [Thread(target=plot_figure, args=(fqueue, dqueue)) for fig in xrange(nthreads)] dbg("start %d threads" % len(threads)) for t in threads: t.daemon = True t.start() dbg("fill queue") for fig in xrange(nfig): fqueue.put(fig) dbg("wait for threads") for _ in xrange(nfig): dqueue.get() dbg("done") if __name__=="__main__": main() |
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCmltcG9ydCBsb2dnaW5nCmltcG9ydCBtdWx0aXByb2Nlc3NpbmcKaW1wb3J0IG1hdGgKaW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBzeXMKCmZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBKb2luYWJsZVF1ZXVlIGFzIFF1ZXVlLCBQcm9jZXNzIGFzIFRocmVhZApmcm9tIG1hdHBsb3RsaWIgaW1wb3J0IHB5cGxvdCBhcyBwbHQKCmRiZyA9IG11bHRpcHJvY2Vzc2luZy5nZXRfbG9nZ2VyKCkuaW5mbwoKZGVmIHBsb3RfZmlndXJlKHF1ZXVlLCBkcXVldWUpOgogICAgd2hpbGUgVHJ1ZToKICAgICAgICBuZmlnID0gcXVldWUuZ2V0KCkKICAgICAgICB0cnk6CiAgICAgICAgICAgIGRiZygicGxvdCAlcyIgJSBuZmlnKSAgICAgICAgCiAgICAgICAgICAgIHggPSBucC5hcmFuZ2UobmZpZyptYXRoLnBpLzEwMCwgNStuZmlnKm1hdGgucGkvMTAwLCAwLjEpOwogICAgICAgICAgICB5ID0gbnAuc2luKHgpCgogICAgICAgICAgICBmID0gcGx0LmZpZ3VyZShuZmlnKQogICAgICAgICAgICBheCA9IGYuYWRkX3N1YnBsb3QoMTExKQogICAgICAgICAgICBheC5wbG90KHgsIHkpCiAgICAgICAgICAgIGF4LnNldF90aXRsZShzdHIobmZpZykpCiAgICAgICAgICAgIGYuc2F2ZWZpZygnJXMucGRmJyAlIG5maWcpCiAgICAgICAgICAgIHBsdC5jbG9zZShuZmlnKQogICAgICAgICAgICBxdWV1ZS50YXNrX2RvbmUoKQogICAgICAgICAgICBkYmcoImRvbmUgJXMiICUgbmZpZykKICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICBkcXVldWUucHV0KG5maWcpCiAgICAgICAgCmRlZiBtYWluKCk6CiAgICBsb2dnZXIgPSBtdWx0aXByb2Nlc3NpbmcubG9nX3RvX3N0ZGVycigpCiAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5JTkZPKQoKICAgIG50aHJlYWRzID0gaW50KHN5cy5hcmd2WzFdKSBpZiBsZW4oc3lzLmFyZ3YpID4gMSBlbHNlIDIKICAgIG5maWcgPSBpbnQoc3lzLmFyZ3ZbMl0pIGlmIGxlbihzeXMuYXJndikgPiAyIGVsc2UgMTAKCiAgICAjIHN0YXJ0IHRocmVhZHMKICAgIGZxdWV1ZSA9IFF1ZXVlKCkKICAgIGRxdWV1ZSA9IFF1ZXVlKCkKICAgIHRocmVhZHMgPSBbVGhyZWFkKHRhcmdldD1wbG90X2ZpZ3VyZSwgYXJncz0oZnF1ZXVlLCBkcXVldWUpKQogICAgICAgICAgICAgICBmb3IgZmlnIGluIHhyYW5nZShudGhyZWFkcyldCgogICAgZGJnKCJzdGFydCAlZCB0aHJlYWRzIiAlIGxlbih0aHJlYWRzKSkKICAgIGZvciB0IGluIHRocmVhZHM6CiAgICAgICAgdC5kYWVtb24gPSBUcnVlCiAgICAgICAgdC5zdGFydCgpCgogICAgZGJnKCJmaWxsIHF1ZXVlIikKICAgIGZvciBmaWcgaW4geHJhbmdlKG5maWcpOgogICAgICAgIGZxdWV1ZS5wdXQoZmlnKQoKICAgIGRiZygid2FpdCBmb3IgdGhyZWFkcyIpCiAgICBmb3IgXyBpbiB4cmFuZ2UobmZpZyk6CiAgICAgICAgZHF1ZXVlLmdldCgpCiAgICBkYmcoImRvbmUiKQoKaWYgX19uYW1lX189PSJfX21haW5fXyI6CiAgICBtYWluKCkKICAgICAgICAK
-
upload with new input
-
result: Success time: 0.02s memory: 7436 kB returned value: 1
Traceback (most recent call last): File "prog.py", line 5, in <module> import numpy as np ImportError: No module named numpy


