Author: Robert Hyatt
Date: 10:02:12 07/11/03
Go up one level in this thread
On July 11, 2003 at 06:26:12, Vincent Diepeveen wrote: >On July 10, 2003 at 16:50:45, Robert Hyatt wrote: > >Pingpong does *not* need a processor to get wakened up. Don't know which OS you >use that might be doing that, but the ping pong for MPI when properly >implemented does *not* wake up processes at all. Vincent that just shows how _little_ you understand about what is going on. When you send a packet to a remote machine, _something_ has to read that packet. That _something_ is a process, and it is blocked until the packet arrives. That's why my ping-pong test is done differently. > >I hope you will understand that. If pingpong would wait for a process to wake up >it would run at 10 ms because a process can wake up at most 100 times a second >in linux (and all *nix flavours) as the scheduler runs 100Hz. That is _incorrect_. Unix (Linux in particular) will only context switch every 10ms or so, to control context switching overhead. But if _nothing_ is ready to run, and a process unblocks, it does _not_ wait another 10ms before running. It runs _right now_. > >If you do not care for the pingpong test then you obviously do not care for >chessprograms as well. Because if you need a hashtable entry you definitely need >that latency test to measure. No, I just run the ping pong test _correctly_ to see what the real latency of the hardware is. Software/scheduling latency is _another_ issue that may or may not affect a chess program. IE I don't do blocking I/O so I don't have to get "woken up" ever. > >Note that all HPC professors do include pingpong in the first tests they use to >measure supercomputers/clusters. > >In fact out of the x cluster/supercomputer dudes i asked after pingpong test i >got within a second answer out of all of them. For them the pingpong test *is* >very relevant. It is relevant. How it is done is _also_ relevant. If you measure latency as you are doing, you will get different answers on different systems. Windows and Linux are different and you are measuring both software _and_ hardware latency with your method. Same problem if you compare windows to solaris, or IRIX, or any other unix variant (or non-unix if you want.) My latency measure answers the following question: "How long does it take me to send a packet to the remote machine and have it receive it?" Independent of the Operating System. Independent of the application. Just "what can the hardware do best-case?" I know _that_ number precisely. And if I want to write a chess program that uses that hardware, and I want _that_ latency, I can certainly get it by doing my own direct hardware interface. If I want to be more portable, and absorb some O/S latency on top of the hardware latency, I'll do it a different way. However, I _have_ been using the term "hardware latency" and I have most certainly measured it very precisely. And if you'd like to see me bounce a packet back and forth in just over a usec, I'll be happy to do so. Whether you can do it or not is irrelevant, of course. Because I didn't say _you_ could do it. I said _I_ had _done_ it.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.