From: Dominic Blais Newsgroups: comp.parallel.pvm Subject: Generic Multitasking for PVM Date: Tue, 1 Sep 1998 20:54:38 -0700 Organization: InfoStructure - Ashland, OR Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello. I hope that you will help me to discover an adequete and appropriate answer to this question: If one runs PVM on fairly homogenous machines is the multitasking of non-pvmlib tasks possible and, if so, with what limitations and possibilities may this occur? Unfortunately, I do not have a plurality of machines to expermiment with. However, in my investigations into my future computations, I had been studying the PVM library. I had begun to dream of writing new parallel applications with this library. And, yet, one idea puzzled me more than the others. That was the idea of using PVM to handle ordinary tasks in order to build a more potent multitasking system. Now, my research has led me to believe that the difficulty of this approach lies mainly with the I/O of the program to be used and the assignment and availability of shared resources. Given a parent PVM process that has instructed a child PVM process to begin a new process which is "ordinary" (non-parallel) and which may be spawned with a system() call, the output may be redirected using standard pipe directives which may create a file to be sent to the parent PVM process by the child PVM process (after, of course, inputing the file). Similarly, the input to the "ordinary" process may provided by the pipe directives which would designate a file created by the child PVM process from data sent by the parent PVM process. Would you please tell me if this is possible as described or if modifications are necessary? The difficulty of I/O that I mentioned three paragraphs prior to this one is predicated by real-time I/O. My objectives have served me with two primary problems of this nature. The first problem is the stdio handlers for mid-process input and output (for examples, 'lynx' and 'pine'). The second problem is GUI input and output, specifically for X-windows. Among the (likely impractical) ideas that I have had are the calling of interrupts for the mouse and so on by the child PVM process in such a way (if this is, indeed, possible) that the "ordinary" process recieves this input, the regular examination, reading, and communication of the output file of the "ordinary" process by the child PVM process, the regular appending of the input file of the "ordinary" process by the child PVM process (in accordance with input given to and sent by the parent PVM process), having a background daemon make screen dumps and then having the child PVM process send these to the parent PVM process for analysis (I do hope that I do not forget that parallel processing is usually used for *speeding up* tasks), and modifying other interrupts in ways that are too system specific (I think) to be really helpful. If you will, please, briefly turn your thoughts to this matter I'm sure that you would be able to enlighten me quite sufficiently as to my errors. I would genuinely appreciate this, but, what interests me even more are your ideas for this matter. I do hope that you will communicate these to me; they would be thankfully recieved. Now, if I may briefly change my orientation; I think that the sharing of resources by the child processes is difficult because many tasks that are appropriate for a multitasking system rely on a single filesystem. While the sharing of a filesystem by a program built around parallel computing is relatively easy to implement (since one has control over what each process does), the file I/O of an "ordinary" process is not as easily controlled (perhaps). I do admit that my personal experience with shared filesystems is limited and sparse, but it does seem to me that the bandwidth for updates to the mirrored filesystem might be high. But, that's not my chief worry. My chief worry is that I will be unable to detect which files have been modified by the "ordinary" task and then cordinate (perhaps this part is not difficult) the transmission of those modifications by the child PVM process. I do hope that you will be able to lend some of your insight into this matter, for I am (I should admit) somewhat confused. So then, my goal does comprehend an eventual virtual system multitasker for "ordinary" processes with real-time I/O and X-windows support. I would love to start developing this, but again, I do not currently run more than one computer, and I'm unsure of how to accomplish many of these things. I do hope that you will help. And, if anything does occur from this, I do wish that it is GPL or similarly licensed. Of course, if any, some, most, or all of this has already been accomplished, please tell me of it. I would love to hear how it was done. Thank you so very much for your time. Sincerely, Pascal