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