Project Log for Josh's seior seminar on parallel distributed programing


Sept 26 researched how to have variables that can be accessed by all processes. I was looking at how to create a queue in shared memory in order to use the same algorithm that Joy used.

sept 27 sat down with Joy and had her explain how her algorithm worked. I figured out a way to do it (i think) without using as much shared memory. Rather than building a queue this algorithm uses recursive process calls where the processes can be spawned on various machines.

sept 29 finalized and typed up proposal for senior seminar project

sept 30 gave presentation and turned in project proposal on time the same day.

oct 4th downloaded all the versions of lp_solve and attempted to make them. The newest version that would work was 1.4 and the procedural interface didn't come in until version 2.0. Before that you had to use files for input and output.

oct 7th no luck getting any newer versions to make themselves. I did work on making sure that pvm was in good shape and that all the hosts could be added. This was after I installed pico on germain.

...start of actual log...

wed oct 14th JJ helped me for two hours. He showed me how to figure out what the makefile for the lp_solve program was trying to do. He got lp_solve to make by issueing a bunch of commands lex lex.l, move the output to lex.c, then yacc *.y and move the output to lp.c... then make all the .c files (using make filename.o) except for the ones with numbers in them and the one produced by the lex file.

Friday oct 16st. I made lp_solve on another machine but then had trouble repeating my results. I figured out how to use the procedural interface to the LP_solver and how to make lp_solve programs.

Monday oct 18th. charlie and JJ set me on the right track so I now know what I was doing wrong when I was trying to make lp_solve. I also figured out how to compile programs that include both lp_sove and pvm libraries. Two major breakthroughs...I feel like I can make some progress now!!!

Oct 21st- Tried to spawn multiple instanciation of a process that uses lp_solve and had trouble

oct 25th- Re wrote the program to do what I was trying to do last time and it seemed to work. At least it can be spawned to antoher machine and set up a lp and return information about how that lp is currently set.

Friday oct 30th came in and attempted to get pvm back on track. I found out that PVM is not relly on all the pvm machines. It uses nfs lookup to make it seem like it is. I wonder about the speed and net congestion issues that this might raise. The reason that I notice this is that everything fell apart with the power outage last night. Now even the network connection is goofy. Seems that I can't telnet in from outside anymore.

Nov 2 - It seems that the ns lookup thing is not worth much extra time as it only affects the first time that a process is run on a machine. I now know how to get all the pvm machines working since jim showed me.

Nov 3 - Talked to joy and she gave me some linear programs that I can try to test how lp_solve deals with unbounded and infeasable problems.

Nov 4th - Entered the Lps that joy gave to me. It seems that it just returns 0 for each varible in the objective function and 1e24 for the solution. I also started to figure out how to pass the information to the newly spawned processes.

Nov 5th - It was acting wierd. Sometimes it would work and sometimes it wouldn't. Sometimes the spawned process would just freeze up and never return. I found that the lp_solve library on one of the machines was installed with the wrong name.

sunday Nov 6th - I spent a few hours becoming really comfortable with the lp_solve commands. There is a problem in that the origenal functions that I used dealt with strings as a way of defining functions. I am figureing out how to plug numbers directly into lp_solve. I also made a backup of what I had done and erased much of the program to make it easier to understand.

monday Nov 7th - worked all afternoon trying to figure out why I was having inconsisant results passing messages between processes. With complecated messages that include floats and integers the program was freezing often. I found that it is quite important to specify both a message number and a process id for both sending and recieving messages. Theoretically the wildcard things should have worked with my program. However, it didn't seem to be reliable. This is a breakthrough!

Tuesday Nov 8th- Success passing an array from process to process.

Thursday Nov 10th - Built something that unpacks a array[12] into a two dinemtional matrix and plugs the matrix into the lenear program solver. This was done in a separate program so that I could see the results on a screen without passing them over the network. I also developed an easy way to back up my work.

Sat NOV 14th - Integrated the program from above with int_lp_other. Now I can pass an LP to a spawned process and sovle it. !!!!!!! Nov 15- dec 07. spent more time working on it than I care to admit finally got the code all working. Dec 08 - dec 15th Wrote paper and fixed probem with timeing