Vincent Cheung

Vincent Cheung's Blog

« Newer Post Home Older Post »

Tuesday, February 01, 2005

CVPR 2005

Not quite official yet, but the reviews came back on my CVPR (IEEE Computer Vision and Pattern Recognition) 2005 paper got 3 very good reviews (all "definitely accept"s). Joint work with Nebojsa Jojic and Brendan Frey. Rebuttal period ended just a day or two ago and the final word is given at the end of February or so. It's in San Diego in June.

I've got a distributed computing system going, which is allowing me to run "stuff" on bigger and more video sequences. Getting quite good improvements in speed. All in Java and use object serialization to transfer work and results around. Made a fancy GUI for the client. Fixed some issues with installation on the client by using an "executable jar" that relaunches itself with particular parameters, i.e. server mode ("-server") and increase maximum heap size ("-Xmx512"). Floats are faster than doubles, but lose precision that I need (in particular for cumulative sums - you try adding 31x360x240 numbers together). I do however, use floats to transmist data back and forth to save bandwidth and memory - requiring upwards of a couple hundred megs of memory to run the client. I went through a phase of improving the basic client-server component of the system - occasional pings to keep the connection alive (the built-in keep alive only sends a signal every 2 hours or so, but home computer would lose connection after about half an hour), simultaneous transfer of results back to the server and work on the next work unit, stop thread to allow the server to stop the client, improved scheduling - try and approximate based on the previous client work time when the next work will be finished and assign clients accordingly, processing of results in the background, authorization of client upon connection, and more.

I tried to get it so that during object serialization, the class definition was also sent, but I ran into some problems and it got messy....Had problems with typecasting, though I could get around those by not assuming the sent work was a subclass of DistributedClientWork. Another bigger thing was that if the client work needed access to a class that wasn't on the client, then it'd be troublesome to also send those class definitions (plus need to use dynamic class loading, etc., which makes it harder to extend the distributed system by others).


Post a Comment