Hi list,<br><br>First Hello to all, this is my and hope not end message to the list :P<br><br>This last months I have been writting a program in c like to mod_python for embedding python language, it's a middleware for dispatch and execute python batch programs into several nodes. Now I'm writing some python program for test how scale this into several nodes and comparing with "standalone" performance. <br>
<br>I found a very strange problem with one application named md5challenge, this aplication try to calculate the max number md5 digest in several seconds, md5challenge use a simple signal alarm for stop program when time has passed. This is the code of python script<br>
<br>def handler_alrm(signum, frame):<br> global _signal<br> global _nrdigest<br> global _f<br><br><br> _signal = True<br><br>def try_me():<br> global _nrdigest<br> global _f<br> global _signal<br><br>
_f = open("/dev/urandom","r")<br> while _signal is not True:<br> buff = _f.read(_const_b)<br> md5.md5(buff).hexdigest()<br> _nrdigest = _nrdigest + 1<br><br> if _f is not None : <br>
_f.close()<br><br>def main( req ):<br> global _nrdigest<br><br><br> signal.signal(signal.SIGALRM, handler_alrm)<br> signal.alarm(req.input['time']) <br><br> <br> try_me()<br><br> req.output['count'] = _nrdigest<br>
<br> return req.OK<br><br><br>if __name__ == "__main__":<br> <br> # test code<br> class test_req:<br> pass<br> <br> req = test_req()<br> req.input = { 'time' : 10 }<br> req.output = { 'ret' : 0, 'count' : 0 }<br>
req.OK = 1<br><br> main(req)<br><br> print "Reached %d digests" % req.output['count']<br><br><br>When I try to run this program in standalone into my Pentium Dual Core md4challenge reached 1.000.000 milion keys in 10 seconds but when i try to run this in embedded mode md5challenge reached about 200.000 more keys !!! I repeat this test many times and always wins embedded mode !!! What's happen ?<br>
<br>Also I tested to erase read dependencies from /dev/random, and calculate all keys from same buffer. In this case embedded mode win always also, and the difference are more bigger !!!<br><br>Thks to all, can anybody help to me ?<br>
-- <br>Pau Freixes<br>Linux GNU/User