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