Distributed Processing - Project Log



PVM Homepage
Writing PVM Applications
Distributed Object Primer
C|NET
Tom's Hardware Guide
dot.gif (888 bytes)

Oberon
Operating Systems
POCO
Robotics
Computational Geometry
dot.gif (888 bytes)

Distributed Processing
Distributed Objects
Robot Networks
3D Technology

dot.gif (888 bytes)
Wednesday - 5/6/98
I just had a monumental idea!  Why not have some benchmark information on here about how the processing works.  I think I'll try that and come back with the results...

The results are suprising. Check out the code page.

After looking over the results of the benchmark, I realized just how much this program depends on the network. I was thinking that if I had sent the slave processes more to do, then there would have been a more efficient use of the network. I mean, right now I'm sending a packet for every number. That means if I want to check for 100,000 numbers, I have to send 200,000 packets (one sent, and one recieved). However, if I sent each computer 1000 numbers to check, and then had them send back all of the primes, then at worst, I'd have to send 200 packets across the network. I wouldn't even have to send the thousand numbers; I'd just have to send it a range of numbers, and it could send back an array containing all of the primes in that range. That would be a monumental savings, but because I switched topics so late, I didn't think of that until very, VERY late.

Tuesday - 5/5/98
Spent much of the day polishing up the final application. It seems to work pretty well. I don't know how efficient it is, but if I was worried about speed, I would have just set up a prime-checking program on my machine all by itself.

I bought two one-liter bottles of Coke tonight. The lady at the gas station said that they had two-liter bottles that were $1.19.  I looked at my two bottles and said that "this is easier."

I've been trying to get my program compiled on Black, but it won't because it says there's a library missing.  The library is called rshsvc. I searched for it, but all I found were a couple of directories with header files in it.  I guess it's just up to the three BSD machines.

I was really hoping to get the NeXT machines going because the speed improvements would have been more noticible on those machines.

Monday - 5/4/98
After reading some docs and some example code, I built my first little PVM program. It doesn't really do much that's important, but it does use some of the PVM library functions.  All the program does is count the number of computers connected to the Virtual Machine and print out their names.

After reading a little more code and docs, I started writing an application that sends an integer to a spawned process and then that child process returns the integer.  I did this because I was still hazy on the notion of passing things back and forth to processes.

I started building my real application. I've decided to build a prime-checking program.   After much cogitation, I decided to kind of parallelize the serialized nature of prime-checking.  Basically, what I'll do is send each machine a number to check and when it's done, it'll send me back the number with a message specifiying whether the number was prime or not. That way, it doesn't matter what order the numbers are recieved in, it just prints out the number if it has a message that says its prime. Sounds good to me.

I thought about implementing it so that each child process is testing the same number, but for different ranges.  For example all of the processes are testing 2523421 for primality and the first process is testing that number with all the numbers from 1 to 10000, the second is testing from 10001 to 20000, the third process is testing from 20001 to 30000, but I figured that the computers I'm using are too fast for that so I just decided to have them all test a different number.  Besides, it's a whole lot easier.

Sunday - 5/3/98
DOH! I've spent the last three days trying to get PVM talking between FreeBSD on my machine and the Decstations. Turns out, THEY WERE DIFFERENT VERSIONS! That makes very angry.

Copied the pvm archive from my machine over to Tsetse and built it without much problem.

I'm finally able to connect my machine, reedech, Tsetse, Fire, and Black.  Wow, five-machine processing power!  I think I saw the lights dim when we connected.

The hello example program works between all of them.  That little aimk program is nice. It lets you make and link the example programs with the right ld information and then copies them into the pvm3/bin/FREEBSD directory.

I couldn't get PVM to build on litoria. I don't know really what to do about this, I'm getting tired and I should probably go to bed...

Continued trying to build PVM on Litoria. I messed with the Makefile, but if I changed one thing, it would work up to a point and then die, and if I changed it to something else, it would work a little differently. It's really hard to explain...

I think I figured out why it's not building on litoria.  There's a small utility program called dirname that the Makefile needs to have in order to work.   I can't find it anywhere on the system. It's already on the FreeBSD machines and I'm assuming that it's on Tsetse and Fire (because it compiled).  So, I don't think I'm going to waste my time with this anymore (for now).

Saturday - 5/2/98
After figuring out the .rhosts stuff, I figured out PVM on Tsetse and Litoria. So those two are talking together.  But they won't talk with either my machine or reedech.  This is getting very frustrating.
Friday - 5/1/98
Here's a newsflash: the remote machines must have the .rhosts file set up to accept connections from other hosts and users. I was not aware of this. I set up a link in my home directory that links to Josh's pvm3 directory and tried to get it working as me, but it still won't work between Litoria and Tsetse.

I finally gave up trying to connect Tsetse, Litoria and my machine. Instead, I'm going to build PVM on the new server and set up the .rhosts file for both of them.

After doing some research on rsh and rcp, I finally figured out the whole .rhosts thing. Also, I got reedech (the new server) to connect to my Virtual Machine.

Built and ran the hello program, worked between the two of us. I really want to get tsetse connected to me!

Thursday- 4/30/98
I talked to Charlie today in class and he thought that changing over to PVM was a good idea just because of the scope of CORBA was so vast. Like I said, the CORBA spec is 8 megs and 951 pages!

I downloaded PVM v3.4 beta 6 from Netlib today and got it installed. Wow. There's a lot of stuff.  (But not nearly as much as CORBA).

PVM isn't connecting to any of the other machines. Josh Paulson got it working between Tsetse and Litoria, but I can't talk to either of them from my machine. Nor can I get them talking together as me. He got this little program called hello going that runs hello_other on the remote machine, but I can't even get PVM running.

Wednesday - 4/29/98
After beating my head over CORBA too many times, I've decided to change to distributed processing. I think that the subject offers material that I can cover in the time that I have left.

Wow. I found about 10 really useful links on PVM. I think I'm going to use that system. It seems to have the best API and can be used on a lot of different systems.

 

Copyright © May, 1998, Jim Garlick (garlija@earlham.edu)