From owner-mpi-iac@CS.UTK.EDU Tue Apr 13 10:59:52 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA11794; Tue, 13 Apr 93 10:59:52 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA15387; Tue, 13 Apr 93 10:59:21 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 13 Apr 1993 10:59:12 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA15372; Tue, 13 Apr 93 10:59:10 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA08409; Tue, 13 Apr 93 10:58:51 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA07530; Tue, 13 Apr 93 10:58:50 EDT Date: Tue, 13 Apr 93 10:58:50 EDT From: lederman@b125.super.org (Steve Huss-Lederman) Message-Id: <9304131458.AA07530@b125.super.org> To: mpi-iac@cs.utk.edu Subject: "subset" committee begins Cc: jim@meiko.co.uk Welcome to the "subset" committee. I hope everyone who wanted to get this message has. If not, let me know :-) First, we need a new name. Several people made suggestions. I have arbitrarily chosen the name Implementation Advisory Committee (mpi-iac). If people are not happy with this I welcome other ideas. I thought I would make this tough decision myself so we could concentrate on technical matters :-). I think our first job is to decide what we want to recommend for initial implementation. As the ideas and discussions converge, I will produce a document that pulls things together. The initial list from the meeting is just that - initial. We should feel free to change it where we think is appropriate. The initial list was in terms of "We won't include ..." but strong posatives in this discussion are good too. Clearly some of the things voted on at the last meeting may effect the list. ideas? Since many of the people on this committee were not at the last meeting, I would like to overview what happened: A number of MPI participants were concerned about the large scope of the MPI-1 standard. A meeting was called for Wednesday night for vendors and interested persons to discuss the concept of identifying and agreeing to a subset of the standard recommended for initial implementation. There were around 10 people present. After agreeing to the concept, an initial list was formed. At the conclusion of this meeting I volunteered to coordinate this effort. The next day the results of this meeting was presented to everyone. There were no objections to the ideas. Below is a copy of my slides. {} indicate comments I have added to help put the slides in context. GOALS ----- - Define a reasonable subset of MPI that is recommended for initial implementation - Only minimum recommendation: Welcome to implement more - Allow MPI to begin to show up in a timely fashion while still consistent across vendors - Consistent with complete standard METHOD ------ - Create new "subset committee" {what you have joined} - write an Annex (like HPF) - Present flushed out proposal/annex at next meeting - Hope "other" committee will create initial test suite for minimal implementation :-) Might motivate implementors. {Adam Greenberg volunteered at this meeting to coordinate the creation of a test suite for MPI} -------- - First shot list - want subcommittee members for ideas and to solidify {all of you} - Begin discussion via e-mail {what we will hopefully do now} 1) No persistent handles 2) No multicomponent buffer description {only allow one entry of data in a buffer descriptor} 3) No indexed component {in buffer descriptor} 4) No topology {later it was voted at this meeting to make this a separate library} 5) No waitany/all {there was one person who wanted waitany back in} 6) "no name server model" {to deal with context/groups} From owner-mpi-iac@CS.UTK.EDU Tue May 4 12:04:05 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA19964; Tue, 4 May 93 12:04:05 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA15561; Tue, 4 May 93 12:03:35 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 4 May 1993 12:03:34 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA15551; Tue, 4 May 93 12:03:32 -0400 Received: from b124.super.org by super.super.org (4.1/SMI-4.1) id AA10972; Tue, 4 May 93 12:03:29 EDT Received: by b124.super.org (4.1/SMI-4.1) id AA02942; Tue, 4 May 93 12:03:26 EDT Date: Tue, 4 May 93 12:03:26 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9305041603.AA02942@b124.super.org> To: mpi-iac@cs.utk.edu Subject: first shot list Dear IAC member, Long time no hear :-) I have finally read all of the draft proposals that have been sent around. To speed things up, I have some first suggestions of what should and should not be in the recommended subset. You probably will want a copy of the pt-2-pt and collcomm drafts at hand when you read this. This is just a first shot and discussions are welcome. I separate out the ideas by which draft they are in and list the section of the chapter they are in. Pt-2-Pt: 1.2.1: MPI_FREE and MPI_ASSOCIATED are both in the recommended subset. 1.5: All data types are supported for buffer components. Contiguous, Vector and Indexed are all in but the Heterogeneous vector and indexed are out because they are another thing. If the vendors are converting the bytes anyway and feel it is no extra work then I would add Heterogeneous back in. Obviously MPI_CREATE_BUFFER and MPI_COMMIT_BUFFER are in. The APPEND functions will be limited to one call per buffer. Thus, they really become a special case of a contiguous buffer call. Since only one APPEND can occur to each buffer, the issue of overlap is gone. One may ask why have buffer descriptors at all in the subset. I think they are sufficiently important to MPI and will be used that they should show up in some form in the initial implementations. 1.6: All receive criteria will be supported. 1.7: STANDARD communication mode is in and SECURE is out because it is harder and extra work. READY is in because it is easy and some already support. (agree?) 1.8.1,1.8.2: Access to low level msg init, startup and completion. mixed feelings: in for now? 1.8.3: WAIT, STATUS, QUERY and CREATE_STAT are all in. 1.8.4: WAITANY is in because it adds efficiency (maybe). STATUSANY and WAITALL is out. WAITALL is easy to do as a loop and STATUSANY is used less. 1.9: All blocking comm. are in 1.10: All non-blocking comm. are in 1.11: All contiguous Block operations are in. 1.12: PROBE I have mixed feelings. Takes work so am inclined to be out. If will be really useful and used then could add. out for now? GET_LEN is out since all buffers are single units in subset. CANCEL is hard and out. Collective Communication: There are often 3 types of calls: 1) buffer descriptor 2) block buffer (*C) 3) same input and output buffer (*1) Since the subset makes block buffer and buffer descriptor basically the same, I include both for collcomm. The same input and output buffer can be harder and avoided at the cost of double user memory usage. Some may need but out for simplicity. Mixed feeling about this one. For each section: 1.4: BARRIER is in 1.5: Include all types of collcomm in this section except the *1 calls with the same input/output buffers. 1.6: User function are excluded from the subset because they are harder to implement. All the ops choices are supported because they are just variations on a theme. Thus, REDUCE/C are in but the USER_REDUCE/C are out. Also, SCAN/C are in but USER_SCAN/C are out. TOPOLOGIES: This is close to my heart but for the sake of simplicity I think it should be out. comments? Well, that's it for the first shot. I am just one member of the committee so I hope that a discussion follows. Steve From owner-mpi-iac@CS.UTK.EDU Tue May 4 13:12:29 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA21588; Tue, 4 May 93 13:12:29 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA20525; Tue, 4 May 93 13:11:45 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 4 May 1993 13:11:44 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from gw1.fsl.noaa.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA20514; Tue, 4 May 93 13:11:42 -0400 Received: by gw1.fsl.noaa.gov (5.57/Ultrix3.0-C) id AA02283; Tue, 4 May 93 17:11:24 GMT Received: by macaw.fsl.noaa.gov (4.1/SMI-4.1) id AA16121; Tue, 4 May 93 11:09:56 MDT Date: Tue, 4 May 93 11:09:56 MDT From: hender@macaw.fsl.noaa.gov (Tom Henderson) Message-Id: <9305041709.AA16121@macaw.fsl.noaa.gov> To: mpi-iac@cs.utk.edu Subject: Re: first shot list Cc: lederman@b125.super.org Hi all, Here's my (mostly minor) comments on Steve's "first shot list": > Pt-2-Pt: > ... > 1.5: All data types are supported for buffer components. Contiguous, > Vector and Indexed are all in but the Heterogeneous vector and indexed > are out because they are another thing. If the vendors are converting > the bytes anyway and feel it is no extra work then I would add > Heterogeneous back in. Obviously MPI_CREATE_BUFFER and > MPI_COMMIT_BUFFER are in. The APPEND functions will be limited to one > call per buffer. Thus, they really become a special case of a > contiguous buffer call. Since only one APPEND can occur to each > buffer, the issue of overlap is gone. One may ask why have buffer > descriptors at all in the subset. I think they are sufficiently > important to MPI and will be used that they should show up in some > form in the initial implementations. It seems to me that MPI_APPEND_VEC() and MPI_APPEND_INDEXED() are very strong arguments for including buffer descriptors in the subset. > 1.7: STANDARD communication mode is in and SECURE is out because it is > harder and extra work. READY is in because it is easy and some > already support. (agree?) Did we decide that a valid implementation of READY mode is STANDARD mode? If so, I think we should find out how many vendors would really do READY mode in their initial implementation... > 1.8.1,1.8.2: Access to low level msg init, startup and completion. > mixed feelings: in for now? If vendors feel these are "easy" to do, then I don't see any reason not to include them. If not, I think we could safely delay them because it will take some time for most users to begin using them. > 1.8.4: WAITANY is in because it adds efficiency (maybe). STATUSANY > and WAITALL is out. WAITALL is easy to do as a loop and STATUSANY is > used less. I don't see any reason to omit STATUSANY if we include WAITANY. Is STATUSANY more difficult to implement? I could live without either for a while... > 1.12: PROBE I have mixed feelings. Takes work so am inclined to be > out. If will be really useful and used then could add. out for now? > GET_LEN is out since all buffers are single units in subset. CANCEL > is hard and out. As a user, I (personally) have no problem leaving these out initially. > Collective Communication: > > There are often 3 types of calls: > 1) buffer descriptor > 2) block buffer (*C) > 3) same input and output buffer (*1) > > Since the subset makes block buffer and buffer descriptor basically > the same, I include both for collcomm. The same input and output > buffer can be harder and avoided at the cost of double user memory > usage. Some may need but out for simplicity. Mixed feeling about > this one. How hard is "same input and output buffer"? Vendors?... > TOPOLOGIES: > > This is close to my heart but for the sake of simplicity I think it > should be out. comments? I feel the same way. Vendors should be aware of the "internal cacheing" that may be necessary for a clean implementation... > Well, that's it for the first shot. I am just one member of the > committee so I hope that a discussion follows. > > Steve We'll probably have to do this again after the context subcommittee settles down... :-) Tom Henderson From owner-mpi-iac@CS.UTK.EDU Tue May 4 16:26:26 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA26624; Tue, 4 May 93 16:26:26 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA05325; Tue, 4 May 93 16:26:08 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 4 May 1993 16:26:07 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from timbuk.cray.com by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA05316; Tue, 4 May 93 16:26:05 -0400 Received: from teak18.cray.com by cray.com (4.1/CRI-MX 2.19) id AA22521; Tue, 4 May 93 15:26:02 CDT Received: by teak18.cray.com id AA11972; 4.1/CRI-5.6; Tue, 4 May 93 15:26:00 CDT From: par@teak.cray.com (Peter Rigsbee) Message-Id: <9305042026.AA11972@teak18.cray.com> Subject: IAC effort To: mpi-iac@cs.utk.edu Date: Tue, 4 May 93 15:25:57 CDT X-Mailer: ELM [version 2.3 PL11b-CRI] IAC members - Looking over the point-to-point and collective communications drafts, I have become quite discouraged by the complexity and massive size of MPI. (I counted about 70 functions in these two documents; note that current implementations of PVM and Express appear to keep their users satisfied with 20 or fewer functions in these same areas). My personal opinion is that this is due to a lack of focus -- MPI is trying to meet the needs of too wide a range of current and future message-passing users. I wasn't at the last meeting, and my only information about this new committee is what I've seen in the e-mail. I think this committee is important if anything implementable is to come from the MPI effort. Unfortunately, I'm concerned that the subsetting is not being done in an organized manner. I'm afraid that by picking and choosing things from the document based on feelings of whether they are important and/or hard to implement is going to lead to an unsatisfactory combination of things. And a "subset" that is still awfully large and complex. I'd like to suggest that the IAC consider approaching the subset issue from the top down, by establishing some well-focused, high level rules for selecting or deselecting features from MPI. And only then go through the documents looking at individual features. For example, I could see the following two rules as being sufficient: - the subset should be (upwardly? downwardly? I can never remember) compatible with the full MPI spec - the subset should support those features needed by a basic applications programmer whose primary interest is portability among homogeneous systems I see the first rule as critical. A vendor who implements the subset should then be able to implement other MPI features as desired, without any incompatibiliaties arising. The second rule is the key (IMO) to whether the subsetting will be successful or not. I'm not arguing that this particular text should be *the* rule, but the final rule should be precise and focused. The more types of users included in the rule, the larger the subset, and the less likely it is that even the subset will be implemented. (Think about how you'd state the "rule" being followed by the MPI group as a whole.) This particular example rule would eliminate: - features provided for people writing communications or scientific libraries on top of MPI - features supporting heterogeneous systems - features provided primarily for performance (either in and of themselves, like ready send/receive, or indirectly, like having multiple descriptors in a buffer) A third rule that could be considered would deal with implementation complexity. But this gets pretty subjective and system-dependent. And I'm not sure how you'd state the rule. ("The subset should include only those features that aren't particularly difficult to implement on most systems"? Pretty vague. "The subset should include only those features that are easily implemented on all systems"? Better, but probably too limiting.) There could well be other or different rules. But I think its advantageous to keep this as short and simple as possible. And regardless of which rules are chosen, covering whatever areas, it is important that the selection criteria be documented and understood. (I'm not sure what rules that Steve had in mind when he prepared his "first shot list". I'm sure he had some, and can sort of figure out what they were, but it would have been nice to see them explicitly stated.) With these rules in mind, then look at each feature and ask "does it qualify?". This should simplify the effort. Using the example rules, all heterogenous stuff is out. Ready send/receive is out. Low-level objects are out. Contexts are out. And so on. The result should be a cohesive and complete set of features, given the rules. And you should be able to justify why each feature was included or omitted based on these rules. This won't be the case with an ad hoc process. This will be a difficult process. To draw an analogy with a subject of current concern to Americans, the MPI group as a whole is spending too much. And this group has been tasked with finding ways to cut the spending. Each feature in MPI has its supporters and interest groups who will be upset if it doesn't make the subset. If this group cuts too much some people will be very unhappy, and if it cuts too little other people will be very unhappy. And you won't know for several years (if ever) whether you did the right thing or not. Thoughts? - Peter Rigsbee par@cray.com From owner-mpi-iac@CS.UTK.EDU Tue May 4 17:11:34 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA28235; Tue, 4 May 93 17:11:34 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA10063; Tue, 4 May 93 17:11:17 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 4 May 1993 17:11:16 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from sampson.ccsf.caltech.edu by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA10055; Tue, 4 May 93 17:11:15 -0400 Received: from elephant (elephant.parasoft.com) by sampson.ccsf.caltech.edu with SMTP id AA01151 (5.65c/IDA-1.4.4 for mpi-iac@CS.UTK.EDU); Tue, 4 May 1993 14:11:07 -0700 Received: from lion.parasoft by elephant (4.1/SMI-4.1) id AA27724; Tue, 4 May 93 14:12:07 PDT Received: by lion.parasoft (4.1/SMI-4.1) id AA10265; Tue, 4 May 93 14:13:30 PDT Date: Tue, 4 May 93 14:13:30 PDT From: jwf@lion.Parasoft.COM (Jon Flower) Message-Id: <9305042113.AA10265@lion.parasoft> To: mpi-iac@CS.UTK.EDU Subject: Subset options. I agree with Peter. As he mentions Express managed to keep many users happy with a lot less functions than are in MPI. In the point-to-point communication area we actually only have three; send, blocking and non-blocking receives. We used to have four 'cos there was a non-blocking send too, but users made us take it out because they couldn't understand how to use it and their programs kept crashing! In terms of "rules" to apply. Picking a type of application programmer and trying to make something that would be useful to them is a good starting place. I like that. Another rule I would also apply is that making decisions based on, at best hypothetical, performance potential should be right out. I would make a goal of making the subset into something which forms a baseline not only of functionality but also of performance. This might encourage vendors to OPTIMIZE the subset and we'd end up with something useful, even without all the bells and whistles. Then (cross-fingers) some of the more esoteric routines that we've got for optimization purposes might prove to be unnecessary and we could dump them forever. One way that I've found useful in the past is to imagine that you are given the task of writing the Introductory User's Guide for the system. This forces you to make a logical progression of ideas and utilities. Following this route might also lead to a workable subset. If MPI were much smaller I might even volunteer to write such a thing myself -- in its current form I'd be a complete lunatic to volunteer!!!! I realize that these are vague wafflings but I like the idea of the IAC group trying to find a theme before actually hacking into MPI. Jon From owner-mpi-iac@CS.UTK.EDU Tue May 4 17:54:03 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA29195; Tue, 4 May 93 17:54:03 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA12220; Tue, 4 May 93 17:53:47 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 4 May 1993 17:53:45 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA12210; Tue, 4 May 93 17:53:43 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA16523; Tue, 4 May 93 17:53:41 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA01537; Tue, 4 May 93 17:53:41 EDT Date: Tue, 4 May 93 17:53:41 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9305042153.AA01537@b125.super.org> To: mpi-iac@CS.UTK.EDU Subject: iac methodology My message had one of its intended purposes - to start the discussion. I agree with the sentiments of Peter and Jon that we need a "focus" or goal to guide us. Given the fact that pt-2-pt is just finalizing and collcomm will get its first complete reading at the next meeting (not to mention that context is still completely up in the air), I think we have plenty of time for the big picture before we hash out details. Maybe the discussion over the next week could focus on this and the meeting we have in Dallas would pursue and expand on the ideas. I did have some reasons for how I chose what I included/excluded but soon I will try to state some goals and rules to set forth how I would proceed in a coherent way. Steve From owner-mpi-iac@CS.UTK.EDU Wed May 5 09:17:05 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA15297; Wed, 5 May 93 09:17:05 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA14258; Wed, 5 May 93 09:16:41 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 5 May 1993 09:16:39 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from chert.CS.ORST.EDU by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA14235; Wed, 5 May 93 09:16:36 -0400 Received: from sycamore.CS.ORST.EDU by research.CS.ORST.EDU (4.1/1.30) id AA25686; Wed, 5 May 93 06:16:32 PDT From: pancake@chert.CS.ORST.EDU (Cherri Pancake) Received: by sycamore.CS.ORST.EDU (4.1/CS-Client) id AA09117; Wed, 5 May 93 06:16:31 PDT Date: Wed, 5 May 93 06:16:31 PDT Message-Id: <9305051316.AA09117@sycamore.CS.ORST.EDU> To: mpi-iac@cs.utk.edu Subject: Subset comments I've got to put my two cents in to agree with Peter and Jon that we should be thinking of a prototypical user in assessing MPI requirements. To my mind, too much emphasis has been put into the issue of "how can I be sure I can do an efficient implementation of this?" Although that approach will serve (perhaps) to get good performance with initial implementations, in the long term we will end up saddled with unnecessary items. It is always easier to add to a standard than to delete from it. Whatever happened to our original goal of defining a minimal set upon which later features could be layered? Cherri From owner-mpi-iac@CS.UTK.EDU Wed May 5 11:56:21 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA19222; Wed, 5 May 93 11:56:21 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA24985; Wed, 5 May 93 11:55:58 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 5 May 1993 11:55:57 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from antares.mcs.anl.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA24944; Wed, 5 May 93 11:55:46 -0400 Received: from donner.mcs.anl.gov by antares.mcs.anl.gov with SMTP id AA29622 (5.65c/IDA-1.4.4 for ); Wed, 5 May 1993 10:55:41 -0500 Message-Id: <199305051555.AA29622@antares.mcs.anl.gov> To: mpi-iac@CS.UTK.EDU Subject: Thoughts on implementation order Cc: gropp@mcs.anl.gov, snir@watson.ibm.com Date: Wed, 05 May 1993 10:55:39 -0500 From: Rusty Lusk I think people are getting too paranoid about the number of routines. MPI is actually pretty well designed at this point. Although not everything is just exactly the way I would prefer, I think it is both implementable and usable. As a data point, I offer the following example. Bill Gropp and I are working on a portable implementation, with a well-defined interface to the vendor-supplied optimizations that we can't do. The idea is to see at an early stage what implementation problems MPI has given itself and start to see what MPI programs might look like, even though lots of things will no doubt change. So far we have implemented, out of the point-to-point draft, the following routines: MPI_Init_send MPI_Init_recv MPI_Start MPI_Wait MPI_Query MPI_Create_stat MPI_Status MPI_Create_buffer MPI_Append_contiguous MPI_Comiit_buffer MPI_Free_Buffer MPI_Get_len (We had to guess at what the following will look like) MPI_Init MPI_Mytid MPI_Numtids This gives one enough to define the higher-level pt-to-pt routines in terms of these lower-level ones. So it represents the "minimal subset" that Cherri referred to. It was then easy to write MPI_Sendc MPI_Recvc from the draft in terms of the lower level routines, and we intend to do the rest of the higher-level routines later today. This implementation has not been terribly hard to do (about 800 lines so far.) The idea was to try out how hard MPI would be to implement on a particular platform. We used as our platform our portable abstract layer (Chameleon/p4) which has roughly what most vendor libraries have. We have tried to provide hooks for vendor-specific optimizations so that perhaps some of our code can be reused. So we can write and run the following trivial program, which sends an integer around a ring. So far we have tested it on a set of Suns and RS/6000's, an iPSC/860, and our new IBM SP-1. #include "mpi.h" int worker( argc, argv ) int argc; char **argv; { int buf, siz = sizeof(int), tag = 3, np, right, left; MPI_CNTX cntx = 0; MPI_SObject recv_status; cntx = MPI_Init( argc, argv ); np = MPI_numtids(); right = (MPI_mytid() + 1) % np; left = (MPI_mytid() - 1 + np) % np; if (MPI_mytid() == 1) { buf = 1; MPI_Sendc( &buf, 1, MPI_INT, right, tag, cntx ); MPI_Recvc( &buf, 1, MPI_INT, left, tag, cntx, &recv_status ); } else { MPI_Recvc( &buf, 1, MPI_INT, left, tag, cntx, &recv_status ); MPI_Sendc( &buf, 1, MPI_INT, right, tag, cntx ); } return 0; } The "guidelines" we used to pick an implementation order were to stick to what is currently available in both vendor-supplied and portable systems. Thus we have not yet implemented MPI_Append_vec MPI_Append_indexed MPI_Append_hvec MPI_Append_hindexed This is in accordance with Steve's comment that sticking to contiguous buffers is a reasonable restriction because that is what people are used to. We have not yet implemented MPI_Wait_any MPI_Status_any MPI_Wait_all MPI_Probe MPI_Cancel or any of the collective operations. What I think the initial restrictions should be are the ones that permit an implementation to temporarily postpone the issues of non-global contexts and non-global groups. This will allow implementations to take advantage of existing features, support lots of users, port existing programs, and be quite efficient. The large number of higher-level functions is not by itself a problem. On the other hand, I do believe that these restrictions should be temporary, since a full implementation of MPI will really unleash software authors, in my opinion. A user of very simple operations can get by with any of the current portable systems. But what the current systems *don't* support is a mechanism by which the people who write something like GAUSSIAN can write a portable parallel version just by using MPI, and can efficiently utilize a parallel sparse linear algebra library written by someone else, because *it* was written with MPI. I agree very much with Jon that an MPI User's Guide is needed, to illustrate that the features can be presented in a gracefully unfolding way. Maybe he and I can come up with an outline of one. I disagree with Jon that only a lunatic would try it, because I think it would be satisfying and achievable. I emphasize that this is true precisely because of all the effort that *everyone* has put in to crafting the design. Rusty and Bill From owner-mpi-iac@CS.UTK.EDU Wed May 5 15:34:55 1993 Received: from CS.UTK.EDU by surfer.EPM.ORNL.GOV (5.61/1.34) id AA25089; Wed, 5 May 93 15:34:55 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA10100; Wed, 5 May 93 15:34:28 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 5 May 1993 15:34:26 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from ssd.intel.com by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA10092; Wed, 5 May 93 15:34:23 -0400 Received: from alaska.ssd.intel.com by SSD.intel.com (4.1/SMI-4.1) id AA22163; Wed, 5 May 93 12:33:41 PDT Message-Id: <9305051933.AA22163@SSD.intel.com> To: Rusty Lusk Cc: mpi-iac@cs.utk.edu, gropp@mcs.anl.gov, snir@watson.ibm.com, prp@SSD.intel.com Subject: Re: Thoughts on implementation order In-Reply-To: Your message of "Wed, 05 May 93 10:55:39 CDT." <199305051555.AA29622@antares.mcs.anl.gov> Date: Wed, 05 May 93 12:33:48 -0700 From: prp@SSD.intel.com I'm with Rusty and Bill. I'm concerned that if we rework the main spec simply because there are "too many" routines, we run the risk of cutting it back to a toy that will not be sufficiently interesting to bother with. The number of routines is not a real problem in itself. Instead, it is an accessible indicator of underlying complexity. If there are "too many" routines, the spec must be too complex. Its a good starting point, but you have to look further. I think the underlying complexity is not a lot more than many existing interfaces. What makes it expand into many routines is its expression, especially the multiple layers. If subsetting, I would initially select a single layer, probably the highest one. Within a layer you get many routines because of complete expression of all the orthogonal concepts. If you carefully subset concepts, you cut down on the routines. I would follow Rusty and Bill's suggestion and eliminate some concepts from the subset (maybe subgroups; I wouldn't leave out context, I would leave out non-contiguous buffers.) The NX interface has quite a lot of routines. It only has a single level, but it has several orthogonal concepts. Unlike several smaller interfaces, the NX interface fully expresses most of the concepts. Because the expression is uniform (argument lists are the same for all of the same type of routines, naming convention is the same for all of the same family of routines) it is pretty easy to remember all of them. As far as I can tell, people are using almost all of the variations. I have never heard a complaint from a customer that there were too many routines. (Maybe I'm too insulated!) I think the full MPI spec is pretty good at expressing the underlying concepts uniformly. Thats the key to having a lot of routines without much real complexity. I don't think there is too much complexity, so I'm happy with the number of routines. At this point, as a vendor, I would rather not subset at all. Paul Pierce From owner-mpi-iac@CS.UTK.EDU Fri May 7 13:21:13 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-UTK) id AA00724; Fri, 7 May 93 13:21:13 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA17231; Fri, 7 May 93 13:21:16 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Fri, 7 May 1993 13:21:15 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from chenas.inria.fr by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA17219; Fri, 7 May 93 13:21:09 -0400 Received: from irgate.ifp.fr by chenas.inria.fr (5.65c8d/92.02.29) via Fnet-EUnet id AA01917; Fri, 7 May 1993 19:21:06 +0200 (MET) Received: from irsun21.ifp.fr by irgate.ifp.fr, Fri, 7 May 93 19:26:15 +0200 Received: by irsun21.ifp.fr, Fri, 7 May 93 19:17:54 +0200 Date: Fri, 7 May 93 19:17:54 +0200 From: stoessel@irsun21.ifp.fr (Alain Stoessel) Message-Id: <9305071717.AA11228@irsun21.ifp.fr> To: mpi-iac@CS.UTK.EDU Subject: Subset comments Hi IAC members, Since the beginning of the discussions about the subset, I have noticed the main constrain is the time needed to implement a function. I think (I am a user) that the subset must also allow a quick migration of STANDARD codes written with PVM, Express, NX or Parmacs libraries. It means that standard functionnalities of these libaries must be included in the subset of MPI. Moreover, I think that the way taken by Rusty and Bill is a very good one. If we could begin to implement the subset on the top of an existing library, we can migrate our code very quickly ,even before the end of the definition of the standard. Thus, we can really define a subset which is enough, not too small or not too big by testing if on tipical cases. In any case, if the subset of MPI is not well defined to make easy the migration of existing codes, users will have to wait the availability of the full implementation to work with ... (beginning of 94 or later). It means that the amount of work for migrating our code will become too huge. From a user's point of view, I think that Jon's idea of writing a user's guide to define the subset is a good one. We could start for instance from the report of Bill and Rusty about their implementation of MPI on the top of chameleon. Sorry for my english but it is not my native language.... Alain +-----------------------+------------------------------+ | Alain STOESSEL | Institut Francais du Petrole | | Tel: 33.1.47.52.71.33 | Parallel processing group | | Fax: 33.1.47.52.70.22 | 1-4 Av de Bois-Preau | | | 92506 RUEIL-MALMAISON | +-----------------------+------------------------------+ | Email: stoessel@irsun21.ifp.fr | +-----------------------+------------------------------+ From owner-mpi-iac@CS.UTK.EDU Fri May 7 14:24:15 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-UTK) id AA01068; Fri, 7 May 93 14:24:15 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA21578; Fri, 7 May 93 14:24:07 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Fri, 7 May 1993 14:24:05 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from Aurora.CS.MsState.Edu by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA21570; Fri, 7 May 93 14:24:04 -0400 Received: by Aurora.CS.MsState.Edu (4.1/6.0s-FWP); id AA27012; Fri, 7 May 93 13:24:37 CDT Date: Fri, 7 May 93 13:24:37 CDT From: Tony Skjellum Message-Id: <9305071824.AA27012@Aurora.CS.MsState.Edu> To: mpi-iac@CS.UTK.EDU, stoessel@irsun21.ifp.fr Subject: Re: Subset comments Cc: tony@CS.UTK.EDU IACers, I think that a subset is essential, because of the number of features in MPI that are so remote from current practice; furthermore, if one were to look at the liberal vs. conservative nature of committee (as others have observed), it is not equal over all features/proposed features. Hence, I offer my thoughts. This is not meant to be a "flame." For instance, I have argued for the addition of a two-word match against tags, in order to allow easier layerability. A tag would be matched as follows (following Jim Cownie): (received_tag xor (not dont_care_bits)) and care_bits This would allow the user, not only complete freedom in use of tags, but also the ability to develop further layers on top of MPI that partition the use of tag. I will bring this idea up again at the next meeting, at the second reading of pt-2-pt. It is necessary to have this, and it is a small step away from usual practice. However, it is hard to convince people to add this, despite its negligible impact on performance (two logical operations, instead of one, assuming user passes the one's complement of the dont_care_bits.) However, its impact on MPI flexibility is immense. Hence, I view this feature as essential to the subset and full MPI likewise. Another instance. Contexts. We are arguing for/not for contexts that are independent of groups. Contexts as an extended, system-registered part of the tag field help us to build libraries that can co-exist, register at runtime, and do not interfere with the message-passing of other parts of the system. I want an "open system"; hence, I want to see the tag partitioning. Contexts work very well in Zipcode (my message passing system, developed at Caltech, LLNL), and are helpful with the libraries we develop on Zipcode. Because vendor systems do not have contexts, Zipcode, when it layers on vendor systems must requeue messages. This is undesirable from a performance standpoint. Hence, it is highly desirable for MPI to provide contexts of the type I describe, as a simple tag registration/partitioning mechanism that is understandable as an extension of existing practice. If contexts are limited, and their is a mechanism to find this out (environment), then messaging systems like Zipcode could do requeueing of messages as necessary, or manage contexts themselves at times, and use the precious "fast" contexts on user-specified communications, leaving others to be requeued and slower. Hence, I view contexts (whether plentiful or scarce in a given implementation) as essential to the subset, and the full standard. As Don Heller of Shell has noted... "contexts allow the development of a software industry [for multicomputers]." Groups. Yes, we need them too. They are important for managing who is communicating with others. So, they have to stay in the subset as well. Rik Littlefield, Lyndon Clarke, and I have argued (and will continue to do so) for attributes based on group/context-scope. This would allow the methods implementing communication to be changed in MPI for each group/context scope, permitting optimizations. This is not current practice, except in our Zipcode 1.0 release, which has this useful capability, but it justifiably useful. I think these ideas can/should remain in the standard and in the subset. There are multitudinous types of send/receive that we are currently proposing, but not using in practice currently, which have been proposed and accepted with relative ease by MPI. Practically, send, receive, receive unblocked, is enough, provided the kernel is smart enough to do overlapping of communication and computation. Actually, if the semantics of the Reactive Kernel were taken, which allows the system to handle all memory management, then receive would provide the pointer to the data, and send would be like free, with an allocate mechanism like malloc. These reduce the number of copies of data, except when extremely regular data structures are in use (less and less likely). The RK semantics thought out by Seitz et al are remarkably simple, but highly optimizable, and can even work very fast in shared memory. These semantics do not appear as options in MPI; we only have multitudinous buffer-oriented operations. When memory management units are involved, binding control of the memory and messaging operations gives even more opportunity for the system to optimize. Allowing the user to receive messages without having first to know their size is elegant, and simplifies error issues. As we all know, there are faster implementation strategies than RK semantics for message-passing that are low level, such as channels, active messages (unchampioned in this standard), and shared-memory (eg, CRAY Tera 3D). These need not be part of this standard, but it would be helpful if the standard were unhostile to such possibly efficient implementation mechanisms. The "buffer descriptor" approach in MPI is the best match (being the highest level interface) to a runtime system that exploits channels, and/or active messages, and/or remote memory writes, etc. The optimizability of the highest level is complemented by the fact that the user no longer knows if a buffer is ever formed on the local or remote end [well it should be written to make that so]. Furthermore, heterogeneity can be encapsulated in transfers at this level. Hence, I am convinced that "buffer descriptor" stuff should remain in the subset. The committee has shied away from defining the process model, and this has led not only to a very static model (arguably OK), but a predilection to the SPMD (handling of groups, definition of subgroups, need for dynamic contexts diminished, etc). All of these factors make the standard backward-looking if so adopted, and make it really difficult to justify in the distributed environment. I am not sure why this has happened, but it is unfortunate. It means that MPI codes will be partially portable, but not totally, as each system will have different process management. SPMD programs will be reasonably portable, as the process management is simple, and therefore localized. The handling of the host/node model is not well established in MPI, and may not be suitably supported. That would be a big problem to my mind. To summarize, it is my view that the enabling mechanisms: group, context, tag selection, and buffer descriptors described above are essential aspects of a standard and subset, and should not be sacrificed. MPMD programming, the host/node model, should be supported. - Tony . . . . . . . . . . "There is no lifeguard at the gene pool." - C. H. Baldwin "In the end ... there can be only one." - Ramirez (Sean Connery) in Anthony Skjellum, MSU/ERC, (601)325-8435; FAX: 325-8997; tony@cs.msstate.edu >From owner-mpi-iac@CS.UTK.EDU Tue May 18 09:53:40 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA28911; Tue, 18 May 93 09:53:38 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA01374; Tue, 18 May 93 09:53:51 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA13021; Tue, 18 May 93 10:50:29 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 18 May 1993 10:50:28 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA13008; Tue, 18 May 93 10:50:25 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA11716; Tue, 18 May 93 10:50:22 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00221; Tue, 18 May 93 10:50:21 EDT Date: Tue, 18 May 93 10:50:21 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9305181450.AA00221@b125.super.org> To: mpi-iac@cs.utk.edu Subject: direction Status: R We had a brief meeting of the subcommittee last week in Dallas. Due to the hour and delay in getting back from dinner, only a limited number of people were present. I would like to get feedback on what I thought was the sentiments of the group so that the chapter I am writing will reflect the correct feeling. There seemed to be two main goal that people wanted: 1) A subset that represents a reasonable amount of the functionality of MPI-1. It was noted that if a complete layering of MPI is done then the performance is likely to be slow and this will turn off users who may not come back at a later point. The type of choices I had made seemed ok with people but clearly some of the specifics needed to be discussed. 2) The subset should have enough functions so that MPI could be layered on top in a "machine independent" way. This is consistent with what Bill and Rusty are doing at Argonne. There were other ideas contained in the note I sent around. If you are not happy with this method, then PLEASE speak up. It will be easier to accommodate input now then once things are written down and voted on. Thanks, Steve >From weeks@mozart.convex.com Wed Jun 9 15:20:21 1993 Return-Path: Received: from ens.ens-lyon.fr by lip.ens-lyon.fr (4.1/SMI-4.1) id AA15147; Wed, 9 Jun 93 15:20:20 +0200 Received: from convex.convex.com by ens.ens-lyon.fr (4.1/SMI-4.1) id AA13040; Wed, 9 Jun 93 15:20:12 +0200 Received: from mozart.convex.com by convex.convex.com (5.64/1.35) id AA02135; Wed, 9 Jun 93 08:19:48 -0500 Received: by mozart.convex.com (5.64/1.28) id AA00716; Wed, 9 Jun 93 08:22:01 -0500 Date: Wed, 9 Jun 93 08:22:01 -0500 From: weeks@mozart.convex.com (Dennis Weeks) Message-Id: <9306091322.AA00716@mozart.convex.com> To: Jack.Dongarra@lip.ens-lyon.fr Subject: May 18 mpi mail #2 of 4 Status: R >From owner-mpi-iac@CS.UTK.EDU Tue May 18 11:29:00 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA07383; Tue, 18 May 93 11:28:58 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA04669; Tue, 18 May 93 11:29:10 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA20401; Tue, 18 May 93 12:27:54 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 18 May 1993 12:27:52 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from gw1.fsl.noaa.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA20391; Tue, 18 May 93 12:27:51 -0400 Received: by gw1.fsl.noaa.gov (5.57/Ultrix3.0-C) id AA04293; Tue, 18 May 93 16:27:47 GMT Received: by macaw.fsl.noaa.gov (4.1/SMI-4.1) id AA21714; Tue, 18 May 93 10:26:17 MDT Date: Tue, 18 May 93 10:26:17 MDT From: hender@macaw.fsl.noaa.gov (Tom Henderson) Message-Id: <9305181626.AA21714@macaw.fsl.noaa.gov> To: mpi-iac@cs.utk.edu Subject: Re: direction Status: R Steve writes, > We had a brief meeting of the subcommittee last week in Dallas. Due > to the hour and delay in getting back from dinner, only a limited > number of people were present. I would like to get feedback on what I > thought was the sentiments of the group so that the chapter I am > writing will reflect the correct feeling. > > There seemed to be two main goal that people wanted: > > 1) A subset that represents a reasonable amount of the functionality > of MPI-1. It was noted that if a complete layering of MPI is done > then the performance is likely to be slow and this will turn off users > who may not come back at a later point. The type of choices I had > made seemed ok with people but clearly some of the specifics needed to > be discussed. > > 2) The subset should have enough functions so that MPI could be > layered on top in a "machine independent" way. This is consistent > with what Bill and Rusty are doing at Argonne. > > There were other ideas contained in the note I sent around. If you > are not happy with this method, then PLEASE speak up. It will be > easier to accommodate input now then once things are written down and > voted on. > > Thanks, > Steve > I recall that there were two other main points brought up in the discussion (by Jim, Rusty, and a few others, I think). These were: 1) The subset should contain all the stuff that is "familiar" to users of current message passing libraries. This will make conversion of existing mesage passing programs to MPI "easy". 2) The subset should also contain some features that are obvious improvements over current libraries. This will give people a reason to use MPI. Comments? Tom >From weeks@mozart.convex.com Wed Jun 9 15:21:31 1993 Return-Path: Received: from ens.ens-lyon.fr by lip.ens-lyon.fr (4.1/SMI-4.1) id AA15151; Wed, 9 Jun 93 15:21:31 +0200 Received: from convex.convex.com by ens.ens-lyon.fr (4.1/SMI-4.1) id AA13072; Wed, 9 Jun 93 15:21:23 +0200 Received: from mozart.convex.com by convex.convex.com (5.64/1.35) id AA02210; Wed, 9 Jun 93 08:21:01 -0500 Received: by mozart.convex.com (5.64/1.28) id AA00796; Wed, 9 Jun 93 08:23:14 -0500 Date: Wed, 9 Jun 93 08:23:14 -0500 From: weeks@mozart.convex.com (Dennis Weeks) Message-Id: <9306091323.AA00796@mozart.convex.com> To: Jack.Dongarra@lip.ens-lyon.fr Subject: May 18 mpi mail #3 of 4 Status: R >From owner-mpi-iac@CS.UTK.EDU Tue May 18 12:19:31 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA08646; Tue, 18 May 93 12:19:27 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA06322; Tue, 18 May 93 12:19:40 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA23750; Tue, 18 May 93 13:17:34 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 18 May 1993 13:17:33 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from chenas.inria.fr by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA23739; Tue, 18 May 93 13:17:20 -0400 Received: from irgate.ifp.fr by chenas.inria.fr (5.65c8d/92.02.29) via Fnet-EUnet id AA12738; Tue, 18 May 1993 19:17:15 +0200 (MET) Received: from irsun21.ifp.fr by irgate.ifp.fr, Tue, 18 May 93 19:22:37 +0200 Received: by irsun21.ifp.fr, Tue, 18 May 93 19:13:45 +0200 Date: Tue, 18 May 93 19:13:45 +0200 From: stoessel@irsun21.ifp.fr (Alain Stoessel) Message-Id: <9305181713.AA17712@irsun21.ifp.fr> To: mpi-iac@CS.UTK.EDU Subject: Re: direction Cc: hender@macaw.fsl.noaa.gov Status: R Tom writes > > 2) The subset should also contain some features that are obvious improvements > over current libraries. This will give people a reason to use MPI. > I am not sure that obvious improvements are a necessity in MPI subset. I think that having a standard in message passing libraries is a sufficient reason to migrate to MPI. Improvements must be provided in the complete definition of MPI not in the subset. If you include some improvements in the subset which are not easy to implement, you don't reach the goal of the subset: providing quickly a implementation. Comments ? Alain +-----------------------+------------------------------+ | Alain STOESSEL | Institut Francais du Petrole | | Tel: 33.1.47.52.71.33 | Parallel processing group | | Fax: 33.1.47.52.70.22 | 1-4 Av de Bois-Preau | | | 92506 RUEIL-MALMAISON | +-----------------------+------------------------------+ | Email: stoessel@irsun21.ifp.fr | +-----------------------+------------------------------+ >From weeks@mozart.convex.com Wed Jun 9 15:22:29 1993 Return-Path: Received: from ens.ens-lyon.fr by lip.ens-lyon.fr (4.1/SMI-4.1) id AA15155; Wed, 9 Jun 93 15:22:28 +0200 Received: from convex.convex.com by ens.ens-lyon.fr (4.1/SMI-4.1) id AA13082; Wed, 9 Jun 93 15:22:02 +0200 Received: from mozart.convex.com by convex.convex.com (5.64/1.35) id AA02235; Wed, 9 Jun 93 08:21:39 -0500 Received: by mozart.convex.com (5.64/1.28) id AA00844; Wed, 9 Jun 93 08:23:53 -0500 Date: Wed, 9 Jun 93 08:23:53 -0500 From: weeks@mozart.convex.com (Dennis Weeks) Message-Id: <9306091323.AA00844@mozart.convex.com> To: Jack.Dongarra@lip.ens-lyon.fr Subject: May 18 mpi mail #4 of 4 Status: R >From owner-mpi-iac@CS.UTK.EDU Tue May 18 21:37:22 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA05809; Tue, 18 May 93 21:37:16 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA25828; Tue, 18 May 93 21:37:29 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA00802; Tue, 18 May 93 22:35:11 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 18 May 1993 22:35:09 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from antares.mcs.anl.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA00753; Tue, 18 May 93 22:34:44 -0400 Received: from donner.mcs.anl.gov by antares.mcs.anl.gov with SMTP id AA20207 (5.65c/IDA-1.4.4 for ); Tue, 18 May 1993 21:34:41 -0500 Message-Id: <199305190234.AA20207@antares.mcs.anl.gov> To: mpi-iac@cs.utk.edu Subject: Re: direction In-Reply-To: Your message of "Tue, 18 May 1993 10:50:21 EDT." <9305181450.AA00221@b125.super.org> Date: Tue, 18 May 1993 21:34:39 -0500 From: Rusty Lusk Status: R I recall as a summary of our discussion that night: 1. Don't sacrifice performance; the first MPI functions available should be fast. 2. Include enough so that people can port existing programs with relative ease. 3. Include some added value; give people some motivation for porting to MPI. My read on this would thus be that one should implement at least the contiguous versions of the pt-to-pt routines, and at least global (all processes) groups and contexts. >From weeks@mozart.convex.com Wed Jun 9 15:22:49 1993 Return-Path: Received: from ens.ens-lyon.fr by lip.ens-lyon.fr (4.1/SMI-4.1) id AA15159; Wed, 9 Jun 93 15:22:48 +0200 Received: from convex.convex.com by ens.ens-lyon.fr (4.1/SMI-4.1) id AA13087; Wed, 9 Jun 93 15:22:42 +0200 Received: from mozart.convex.com by convex.convex.com (5.64/1.35) id AA02292; Wed, 9 Jun 93 08:22:20 -0500 Received: by mozart.convex.com (5.64/1.28) id AA00949; Wed, 9 Jun 93 08:24:33 -0500 Date: Wed, 9 Jun 93 08:24:33 -0500 From: weeks@mozart.convex.com (Dennis Weeks) Message-Id: <9306091324.AA00949@mozart.convex.com> To: Jack.Dongarra@lip.ens-lyon.fr Subject: May 19 mpi mail #1 of 1 Status: R >From owner-mpi-iac@CS.UTK.EDU Wed May 19 11:38:44 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA28796; Wed, 19 May 93 11:38:22 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA18354; Wed, 19 May 93 11:38:32 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA27236; Wed, 19 May 93 12:36:47 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 19 May 1993 12:36:46 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from gw1.fsl.noaa.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA27228; Wed, 19 May 93 12:36:45 -0400 Received: by gw1.fsl.noaa.gov (5.57/Ultrix3.0-C) id AA06814; Wed, 19 May 93 16:36:41 GMT Received: by nipmuc.fsl.noaa.gov (4.1/SMI-4.1) id AA29490; Wed, 19 May 93 10:39:51 MDT Date: Wed, 19 May 93 10:39:51 MDT From: hart@nipmuc.fsl.noaa.gov (Leslie Hart) Message-Id: <9305191639.AA29490@nipmuc.fsl.noaa.gov> To: mpi-iac@cs.utk.edu Subject: Scope of IAC Status: R Hi All, I was thinking about the scope of the Implementation Advisory Committee. Is it simply to provide a subset or should it include such issues as suggesting implementation styles for semi-common practices that will be developed by one or more vendors. For example, Intel will no doubt implement an hrecv/hsend set of functions should we suggest a syntax and semantics for such functions? The same is true for an active message layer which we may see from several vendors. These would be suggestions to allow for consistency, but would not be required to be standard conforming. Are there general guidelines that could be suggested as well? I have only questions right now, maybe we can work on some answers. Thanks, Leslie Hart (hart@fsl.noaa.gov) >From sorensen@godzilla.cam.rice.edu Wed Jun 9 15:23:42 1993 Return-Path: Received: from ens.ens-lyon.fr by lip.ens-lyon.fr (4.1/SMI-4.1) id AA15163; Wed, 9 Jun 93 15:23:41 +0200 Received: from moe.rice.edu by ens.ens-lyon.fr (4.1/SMI-4.1) id AA13097; Wed, 9 Jun 93 15:23:39 +0200 Received: from godzilla.cam.rice.edu by moe.rice.edu (AA22237); Wed, 9 Jun 93 08:23:29 CDT Received: by godzilla.cam.rice.edu (AA08598); Wed, 9 Jun 93 08:23:29 CDT Date: Wed, 9 Jun 93 08:23:29 CDT From: sorensen@godzilla.cam.rice.edu (Dan Sorensen) Message-Id: <9306091323.AA08598@godzilla.cam.rice.edu> To: Jack.Dongarra@lip.ens-lyon.fr Subject: ARPA Status: R I seem to have the week of 28 Sep Free so I can do the ARPA thing if you want. I dont have ANY mony for travel or anything else in that account I was able to get 3 mos for Dan Hu from my CRPC account...as it is ARPA only has enough in the acct to pay me 2 mos and him 6 mos. Is there a general fund that we could pay the San Diego trip from? Is Wiegand 's departure good or bad for us? - ----- on a more pleasant topic July 1-4 sounds good... we will be there thanks dan >From owner-mpi-iac@CS.UTK.EDU Tue Jun 1 14:54:44 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA00847; Tue, 1 Jun 93 14:54:41 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA07804; Tue, 1 Jun 93 14:52:15 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA18618; Tue, 1 Jun 93 15:48:03 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 1 Jun 1993 15:48:01 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA18603; Tue, 1 Jun 93 15:47:57 -0400 Received: from hume (hume.super.org) by super.super.org (4.1/SMI-4.1) id AA28445; Tue, 1 Jun 93 15:47:50 EDT Received: by hume (4.1/SMI-4.1) id AA29624; Tue, 1 Jun 93 15:47:49 EDT Date: Tue, 1 Jun 93 15:47:49 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306011947.AA29624@hume> To: mpi-iac@cs.utk.edu Subject: start of IAC draft Status: R Hello all, Attached it the LaTeX of the beginning of the IAC chapter. Please let us know what you think. Steve - ---------------------------------------------------------------------- \documentstyle[12pt]{article} \newcommand{\discuss}[1]{ \ \\ \ \\ {\small {\bf Discussion:} #1} \ \\ \ \\ } \newcommand{\missing}[1]{ \ \\ \ \\ {\small {\bf Missing:} #1} \\ \ \\ } \begin{document} \title{ Initial Implementation Subset } \author{Steven Huss-Lederman} \maketitle \section{Initial Implementation Subset} \discuss{ This is a first shot at the beginning of the MPI-IAC chapter. Omissions and mistakes are purely my own and unintentional. Just let me know and they will be corrected. Only the beginning sections are included. The specifics about concepts and routines to include/exclude will follow shortly after any discussion on the general principles and we have time to digest the latest drafts of the other chapters. } \discuss{ Should this section include recommendations on implementations for areas not specified by MPI-1. For example, channels or interrupt driven messages. I don't think that was in our original charge, but am willing to discuss the point. } \subsection{Introduction} \par This chapter defines a minimal subset of MPI-1 for initial implementation. This subset is being defined so that consistent implementations can appear more rapidly. It was recognized early in the process that MPI-1 needed to appear as quickly as possible and practical. The creation of a subset will hopefully allow users earlier access to the standard and still allow for the writing of portable message passing codes. \par This subset should not in any way be construed as a limitation on MPI-1 implementations. It is strictly the minimum necessary to have an initial MPI-1 subset conforming implementation. Implementors are encouraged to implement the full MPI-1 standard as rapidly as possible. It is hoped that an officially sanctioned subset will encourage and allow implementors to introduce MPI-1 in a more timely fashion. It should be noted, however, that implementation of the subset does not make an implementation conform with MPI-1. The subset is only a potential first step in the process. All implementations must ultimately conform to the entire standard; implementations are encouraged to do the full standard as rapidly as possible. \par The subset presented is consistent with the complete MPI-1 standard. This was an important goal so the additional MPI-1 features could be added without changing any functionality from the user's perspective. Thus, users can be assured that programs written now for the subset will run without modification under the full MPI-1 standard. Furthermore, using additional features of the full MPI-1 standard in the future will not require changes to the code already written. Users may use MPI-1 features outside this subset that are offered by various implementors. However, people who require portability during the early development of MPI-1 may experience some difficulties until later in the development process. \subsection{Criteria and Rational} \par A clear goal of the subset effort was allowing for consistent MPI-1 versions to appear in a more timely manor. Having a target time frame for the development of the subset by implementors helps to focus attention on a realistic size subset. Though there were moderate differences concerning this target time frame, it was agreed that the subset should appear within six months of setting the MPI-1 standard. Most agreed that a year was the upper bound. This is not to imply that all implementations will do the subset in this time frame but that it was reasonable to expect that it could be done in this amount of time. \par Even given a time scale, there were many possible criteria to use in determining the elements of MPI-1 to include in the subset. The main criteria used are \begin{enumerate} \item allowing current users of message passing systems to easily port their codes to the MPI-1 subset. \item creating a minimal subset such that the rest of the MPI-1 standard could be layered on top in a fairly machine independent way. \item containing as many new and important MPI-1 features as possible. \end{enumerate} \par There were many rationales for these criteria. It is recognized that it is impossible to come up with an ideal subset and compromises were necessary. It was felt that current users should be comfortable in migrating to MPI-1. Thus, the subset should contain the message passing elements that represent common practice today. Furthermore, it was felt that the initial (and later) version of MPI-1 should maintain efficiency. Otherwise users will be disenchanted with MPI-1 on their first usage and may never give the standard a second try. Thus, the subset can not be such that many of the commonly needed functions were portable versions that were not tuned to the architecture of interest. On the flip side, not all the features of MPI-1 can be in the subset even though users may desire them. This is why the subset should be complete enough to allow the rest of MPI-1 to be layered on top in a reasonable and efficient manor. Finally, though some felt that the portability offered by the MPI-1 subset was sufficient to entice users, many felt that the subset should contain some new feature(s) over and above current common practice as an added incentive. \discuss{ Some felt that we should aim the subset at typical users. Should this be another criteria? Is the compatibility with current practice enough? There were not people strongly supporting this at the last meeting but I think some of the key people who wanted this were absent. } \discuss{ The draft says that the subset should be able to be done in 6-12 months. Do we exclude any functionality which cannot be done in this time scale on ALL systems. That is, if it is difficult on one machine but fine on all the rest, does this exclude it from the subset? This clearly gets harder and more subjective. } \subsection{Subset Functionality} \end{document} >From weeks@mozart.convex.com Wed Jun 9 15:42:03 1993 Return-Path: Received: from ens.ens-lyon.fr by lip.ens-lyon.fr (4.1/SMI-4.1) id AA15266; Wed, 9 Jun 93 15:42:03 +0200 Received: from convex.convex.com by ens.ens-lyon.fr (4.1/SMI-4.1) id AA13463; Wed, 9 Jun 93 15:41:34 +0200 Received: from mozart.convex.com by convex.convex.com (5.64/1.35) id AA03033; Wed, 9 Jun 93 08:41:08 -0500 Received: by mozart.convex.com (5.64/1.28) id AA01571; Wed, 9 Jun 93 08:43:20 -0500 Date: Wed, 9 Jun 93 08:43:20 -0500 From: weeks@mozart.convex.com (Dennis Weeks) Message-Id: <9306091343.AA01571@mozart.convex.com> To: Jack.Dongarra@lip.ens-lyon.fr Subject: June 1-2 mpi IAC discussion thread Status: R >From owner-mpi-iac@CS.UTK.EDU Tue Jun 1 22:25:44 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA17315; Tue, 1 Jun 93 22:25:41 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA20794; Tue, 1 Jun 93 22:23:19 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA13407; Tue, 1 Jun 93 23:20:01 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 1 Jun 1993 23:19:59 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from antares.mcs.anl.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA13399; Tue, 1 Jun 93 23:19:56 -0400 Received: from donner.mcs.anl.gov by antares.mcs.anl.gov with SMTP id AA20278 (5.65c/IDA-1.4.4 for ); Tue, 1 Jun 1993 22:19:54 -0500 Message-Id: <199306020319.AA20278@antares.mcs.anl.gov> To: mpi-iac@cs.utk.edu Subject: Re: start of IAC draft In-Reply-To: Your message of "Tue, 01 Jun 1993 15:47:49 EDT." <9306011947.AA29624@hume> Date: Tue, 01 Jun 1993 22:19:51 -0500 From: Rusty Lusk Status: R Here are some thoughts on Steve's initial draft. Things I don't think should be in this chapter: 1. I don't think there should be recommendations for areas not specified by MPI. Soon everyone will be experimenting with threads, active messages, access to global data structures, and other things that go beyond message-passing. It is good that this experimentation be allowed to take place unencumbered by even a "pre-standard". These are the things that MPI-2, if it comes into existence, should address. MPI-1 is helping by providing sme support for this experimentation, but should not try to control it. As we found with contexts, the things we are least familiar with lead us into the most complicated discussions. 2. I don't think that the draft should discuss specific time periods for expectations of implementation levels. The market will control the pace of MPI implementations, and whether it is implemented at all. It seems inappropriate to try to lecture implementors on how fast they should move. 3. I now disagree with criterion 2: "creating a minimal subset such that the rest of the MPI-1 standard could be layered on top in a fairly machine-independent way". Paul Pierce easily convinced me that this would mean that high-level routines would not receive the most efficient implementations (they would get layered ones instead), and it would be better to have efficient implementations of the "common practice" subset. What I think the chapter should say: The criteria for selecting an "implementation order" should be (only a minor change from Steve's): 1. Consistency with the full library, to protect the porting investment. 2. Close match to standard practice, to encourage porting to MPI. 3. Allowance for efficient implementation of the standard practice routines, to avoid penalties for porting to MPI. 4. Some benefit not found in most current systems, to provide some payoff for porting to MPI. One way to apply these criteria (here I am getting ahead of what Steve has written so far) would be: 1. The initial subset could focus on the contiguous buffer versions of the routines, since these conform to standard practice, are really in the standard, and have efficient implementations. Heterogeneity would be automatically included, just because these routines specify datatypes. 2. The subset could contain the restriction that there be no subgroups containing fewer than all the processes. This would simplify implementation of the collective communications. 3. An implementation of contexts could be the added benefit. This is one of the most valuable new things in MPI. - - Rusty Lusk >From owner-mpi-iac@CS.UTK.EDU Wed Jun 2 10:37:03 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA28921; Wed, 2 Jun 93 10:37:01 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA11645; Wed, 2 Jun 93 10:34:39 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA04094; Wed, 2 Jun 93 11:32:49 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 2 Jun 1993 11:32:47 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA04084; Wed, 2 Jun 93 11:32:45 -0400 Received: from hume (hume.super.org) by super.super.org (4.1/SMI-4.1) id AA29230; Wed, 2 Jun 93 11:32:38 EDT Received: by hume (4.1/SMI-4.1) id AA05749; Wed, 2 Jun 93 11:32:37 EDT Date: Wed, 2 Jun 93 11:32:37 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306021532.AA05749@hume> To: mpi-iac@cs.utk.edu Subject: Comments on draft Status: R Thanks to Rusty for his comments. Here are some of my thoughts on Rusty's 3 points: 1) I agree that subset should not try and specify areas not covered by MPI-1. It was suggested so I passed it along. I would like to hear reasons to add it to the draft. If I don't hear some, I will remove the discussion item. 2) I did not want to imply that the subset would show up in 6-12 months but clearly there is something being said between the lines. The discussion of time scales was more aimed at putting our decisions for what to include/exclude into perspective. I think it has merit from that perspective but I also appreciate Rusty's concern about seeming to mandate schedules to implementors. Thoughts? 3) I'm not sure if we disagree on the wording or the idea here. I did not mean that the subset should only consist of what is necessary to layer the rest of MPI on top. I agree that the important and commonly used routines should be in the subset and coded to get efficiency. What I wanted to get by this bullet was that the subset should make sure that it has everything necessary to layer the rest on top without having to jump through hoops. Or putting it another way, if the subset had the common practice routines plus some new features there might be a few routines missing that would allow layering in an easy way. It might be that this is the null set in which case it is not important. Do people like this idea or want it removed? Steve >From owner-mpi-iac@CS.UTK.EDU Tue Jun 8 14:55:30 1993 Received: from convex.convex.com by mozart.convex.com (5.64/1.28) id AA07627; Tue, 8 Jun 93 14:55:27 -0500 Received: from CS.UTK.EDU by convex.convex.com (5.64/1.35) id AA25289; Tue, 8 Jun 93 14:52:30 -0500 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA27550; Tue, 8 Jun 93 15:49:21 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 8 Jun 1993 15:49:20 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA27535; Tue, 8 Jun 93 15:49:16 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA16951; Tue, 8 Jun 93 15:49:14 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA03675; Tue, 8 Jun 93 15:49:13 EDT Date: Tue, 8 Jun 93 15:49:13 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306081949.AA03675@b125.super.org> To: mpi-iac@cs.utk.edu Subject: draft Status: R Hello All! Attached is the latest LaTeX version of the IAC chapter. We are scheduled to present this chapter at the next meeting in two weeks. I would like to get as much feedback as possible in the next week to make sure it gets included in the draft that is distributed to all the MPI people. As before, a Postscript version is available via anonymous ftp from ftp.super.org in pub/mpi. Steve - ---------------------------------------------------------------------- \documentstyle[12pt]{article} \newcommand{\discuss}[1]{ \ \\ {\small {\bf Discussion:} #1} } \newcommand{\missing}[1]{ \ \\ {\small {\bf Missing:} #1} } \begin{document} \title{ Initial Implementation Subset } \author{Steven Huss-Lederman} \maketitle \section{Initial Implementation Subset} \discuss{ This is a first shot at the MPI-IAC chapter. Omissions and mistakes are purely my own and unintentional. Just let me know and they will be corrected. } \discuss{ Should this section include recommendations on implementations for areas not specified by MPI-1. For example, channels or interrupt driven messages. I don't think that was in our original charge, but am willing to discuss the point. This will be removed unless someone argues for it. } \subsection{Introduction} \par This chapter defines a minimal subset of MPI-1 for initial implementation. This subset is being defined so that consistent implementations can appear more rapidly. It was recognized early in the process that MPI-1 needed to appear as quickly as possible and practical. The creation of a subset will hopefully allow users earlier access to the standard and still allow for the writing of portable message passing codes. \par This subset should not in any way be construed as a limitation on MPI-1 implementations. It is strictly the minimum necessary to have an initial MPI-1 subset conforming implementation. It is hoped that an officially sanctioned subset will encourage and allow implementors to introduce MPI-1 in a more timely fashion. It should be noted, however, that implementation of the subset does not make an implementation conform with MPI-1. The subset is only a potential first step in the process. All implementations must ultimately conform to the entire standard; implementations are encouraged to do the full standard as rapidly as possible. \par The subset presented is consistent with the complete MPI-1 standard. This was an important goal so the additional MPI-1 features could be added without changing any functionality from the user's perspective. Thus, users can be assured that programs written now for the subset will run without modification under the full MPI-1 standard. Furthermore, using additional features of the full MPI-1 standard in the future will not require changes to code already written. Users may use MPI-1 features outside this subset that are offered by various implementors. However, people who require portability during the early development of MPI-1 may experience some difficulties until later in the development process. \subsection{Criteria and Rational} \par A clear goal of the subset effort was allowing for consistent MPI-1 versions to appear in a more timely manor. Having a target time frame for the development of the subset by implementors helps to focus attention on a realistic size subset. Though there were moderate differences concerning this target time frame, it was agreed that the subset should be able to appear within six months of setting the MPI-1 standard. Most agreed that a year was the upper bound. This is not to imply that all implementations will do the subset in this time frame but that it was reasonable to expect that it could be done in this amount of time. \discuss{ Rusty commented that it may not be a good idea to include time scales in the document. The market will drive when MPI-1 will show up. On the other hand, I placed this here so that our decisions for including/excluding items could be put into perspective. Thoughts? } \par Even given a time scale, there were many possible criteria to use in determining the elements of MPI-1 to include in the subset. The main criteria used are \begin{enumerate} \item contain the MPI-1 routines that are as close as possible to standard practice to minimize the effort in porting codes. \item containing as many new and important MPI-1 features as possible. \item creating a minimal subset such that the rest of the MPI-1 standard could be layered on top in a fairly machine independent way. \end{enumerate} \par There were many rationales for these criteria. It is recognized that it is impossible to come up with an ideal subset and compromises were necessary. It was felt that current users should be comfortable in migrating to MPI-1. Thus, the subset should contain the message passing elements that represent common practice today. Furthermore, it was felt that the initial (and later) version of MPI-1 should maintain efficiency. Otherwise users could be disenchanted with MPI-1 on their first usage and may never give the standard a second try. Thus, the subset can not be such that many of the commonly needed functions were portable versions that were not tuned to the architecture of interest. On the flip side, not all the features of MPI-1 can be in the subset even though users may desire them. This is why the subset should be complete enough to allow the rest of MPI-1 to be layered on top in a reasonable and efficient manor. Finally, though some felt that the portability offered by the MPI-1 subset was sufficient to entice users, many felt that the subset should contain some new feature(s) over and above current common practice as an added incentive. \discuss{ Some felt that we should aim the subset at typical users. Should this be another criteria? Is the compatibility with current practice enough? There were not people strongly supporting this at the last meeting but I think some of the key people who wanted this were absent. } \discuss{ Should it be a criteria that the rest of MPI be able to be layered on top? This was aimed at allowing easy and efficient layering of the rest so that a ``machine independent'' package could be created without having the developer jump through lots of hops. This might happen if a few functions were leftt out that didn't meet the other criteria. However, some left it was not a strong enough reason to leave it in. Thoughts? } \discuss{ The draft says that the subset should be able to be done in 6-12 months. Do we exclude any functionality which cannot be done in this time scale on ALL systems. That is, if it is difficult on one machine but fine on all the rest, does this exclude it from the subset? This clearly gets harder and more subjective. } \subsection{Subset Functionality} \discuss{ The chapter seemed to be filling up with rationalizations for what we are doing. I have given fewer reasons for decisions in this section. Is this ok with everyone? } \discuss{ This section only discuss the pt-to-pt and collcomm chapters. The other chapters will be added after they are read at meetings and finalized. } \subsubsection{Itemized Functionality} The Table below sumarizes the specific functionality included and excluded from the subset. \goodbreak \vskip 0.2truein \def\chpt{1} \def\chcol{2} \vbox{ \halign{\hfil#\hfil\quad &\hfil#\hfil\quad &\hfil#\hfil\quad &\hfil#\hfil \cr Section&Operation&Included&Excluded \cr \noalign{\kern 2pt} \noalign{\hrule} \noalign{\kern 10pt} \multispan 4 \hfil \underline{Point to Point Communication} \hfil \cr \noalign{\kern 4pt} \chpt.5.2&Buffer Operations&``All'' functions&Multiple appends, h versions(?) \cr \chpt.7&Comm. Mode&Standard&Ready, Synchronous \cr \chpt.8.1&Comm. Object Creation&All(?)& \cr \chpt.8.2&Comm. Start&START(if have INIT)& \cr \chpt.8.3&Comm. Completion&All& \cr \chpt.8.4&Multiple Completion&All& \cr \chpt.9&Blocking Comm.&Std. version&Ready, Synch. version \cr \chpt.10&Nonblocking Comm.&Std. version&Ready, Synch. version \cr \chpt.11&Contiguous Buffer Comm.&Std. version&Ready, Synch. version \cr \chpt.12&&PROBE&CANCEL,GET\_LEN \cr \noalign{\kern 10pt} \multispan 4 \hfil \underline{Collective Communication} \hfil \cr \noalign{\kern 4pt} \chcol.4&Synchronization&All& \cr \chcol.5&Data Move&All(?)& \cr \chcol.6&Global Compute&MPI Ops&User Ops \cr } } \vskip 0.2truein \noindent All other general functionality is included in the subset. Thus, all matching criteria, order, etc. are part of the subset. \subsubsection{Point to Point Functionality} The operations involving contiguous buffers are included since they represent standard practive today. In addition, the communications buffers are also included because they offer an important new feature in MPI. However, to simplify the implementation, the communication buffer will be limited to one component, e.g., only one append is allowed. This limitation will still allow the user access to the strided and indexed cases but require more complex cases to be done by the user. \discuss{ If we eliminated communicaiton buffers then the number of routines would be greatly reduced. We would only have the ``C'' routines in collective communications and contiguous in pt-2-pt. Right now I think we should leave it in but I point this out } \discuss{ The heterogeneous cases (hvector, hindexed) seem very easy to do but are another set of functions. They allow elements of a C type structure to be pulled out in the subset. Leave in? } Of the three types of communication modes, the STANDARD mode represents standard practice and is included. The other two modes are not used as commonly and therefore excluded. This applies to all of the point to point communications routines. The common versions of blocking and nonblocking send and receive are included. In addition, the low level routines of INIT and START are included. These should help users who wish greater control over communications for optimization purposes. For example, this would allow for the reuse of a persistent handle. \discuss{ Using INIT, START, COMPLETE, FREE is not what most people do today but does allow for greater speed. It seems as if you would have this in a system anyway and it would be useful to the user. Should we include it? } \subsubsection{Collective Communication Functionality} The collective communication routines have the same general restrictions as the point to point routines. Therefore, the buffer descriptors will be limited to one entry. A collective communication operates on a group. This defines the scope of the operation. Many current users only operate on all the processes. This is the MPI\_ALL group in MPI. To simplify the subset, groups will be limited to be MPI\_ALL. \discuss{ There are a lot of data move functions. I could not think of a way to draw a line to exclude some. Do we want all of these in the subset. How often are ALLCAST, ALLSCATTER used? } \discuss{ For the subset do we want both the REDUCE and ALLREDUCE versions? } \end{document} From owner-mpi-iac@CS.UTK.EDU Mon Jun 14 09:58:55 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA23362; Mon, 14 Jun 93 09:58:55 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA05055; Mon, 14 Jun 93 09:59:16 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Mon, 14 Jun 1993 09:59:15 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA05047; Mon, 14 Jun 93 09:59:14 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA15252; Mon, 14 Jun 93 09:59:28 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00256; Mon, 14 Jun 93 09:59:27 EDT Date: Mon, 14 Jun 93 09:59:27 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306141359.AA00256@b125.super.org> To: mpi-iac@cs.utk.edu Subject: draft Hi All, Last Tuesday I sent out the first version of the IAC chapter. I have not received any comments yet. I do not think that everyone agrees with everything I said. Please let me and the committee know what you think. We are going to present our chapter on Friday. Given this and the level of discussion so far, we should plan on meeting on Wednesday evening to go over things. Steve From owner-mpi-iac@CS.UTK.EDU Tue Jun 15 23:15:08 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA11478; Tue, 15 Jun 93 23:15:08 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA27976; Tue, 15 Jun 93 23:15:24 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 15 Jun 1993 23:15:22 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from antares.mcs.anl.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA27962; Tue, 15 Jun 93 23:15:20 -0400 Received: from donner.mcs.anl.gov by antares.mcs.anl.gov with SMTP id AA10605 (5.65c/IDA-1.4.4 for ); Tue, 15 Jun 1993 22:15:38 -0500 Message-Id: <199306160315.AA10605@antares.mcs.anl.gov> To: lederman@super.org (Steve Huss-Lederman) Cc: mpi-iac@cs.utk.edu Subject: Re: draft In-Reply-To: Your message of "Tue, 08 Jun 1993 15:49:13 EDT." <9306081949.AA03675@b125.super.org> Date: Tue, 15 Jun 1993 22:15:35 -0500 From: Rusty Lusk A few comments on the IAC draft: I think MPI-1 should be replaced with MPI, as it appears in the rest of the MPI draft. "manor" should be "manner". I think that criterion 3 (minimal subset for layering) is not a good criterion. It necessarily leads to implementing the low-level routines and then layering the high-level ones, which will not give the most efficient implementations of the most commonly-used routines. A better criterion 3 is that of providing maximally efficient implementations of the functions that are closest to standard practice. The draft does not mention contexts. I think that as an important new feature not commonly found in most systems, it (non-trivial contexts) should definitely be in any subset. - Rusty From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 10:50:47 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA16252; Wed, 16 Jun 93 10:50:47 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA18586; Wed, 16 Jun 93 10:50:08 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 10:50:07 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA18574; Wed, 16 Jun 93 10:50:04 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA13199; Wed, 16 Jun 93 10:50:23 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00746; Wed, 16 Jun 93 10:50:22 EDT Date: Wed, 16 Jun 93 10:50:22 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306161450.AA00746@b125.super.org> To: mpi-iac@cs.utk.edu Subject: [hender@macaw.fsl.noaa.gov: Re: comments on latest IAC draft] I am forwarding Tom's comments to everyone so you can see them. I will try and update the chapter based on Tom's and Rusty's comments (assuming I can get a copy back from Steve Otto). Any others received soon will be incorporated. Steve ---------------------------------------------------------------------- Return-Path: Date: Tue, 15 Jun 93 17:26:25 MDT From: hender@macaw.fsl.noaa.gov (Tom Henderson) To: lederman@super.org Subject: Re: comments on latest IAC draft Steve, Not a lot of comments, but here they are... Feel free to pass this on to mpi-iac if you feel they're worthwhile. > Should this section include recommendations on implementations for > areas not specified by MPI-1. For example, channels or interrupt driven > messages. I don't think that was in our original charge, but am > willing to discuss the point. This will be removed unless someone > argues for it. No. Our job is going to be tough enough already :-) > Some felt that we should aim the subset at typical users. Should this > be another criteria? Is the compatibility with current practice > enough? There were not people strongly supporting this at the last > meeting but I think some of the key people who wanted this were > absent. I think "compatibility with current practice" is enough. > Should it be a criteria that the rest of MPI be able to be layered on > top? This was aimed at allowing easy and efficient layering of the > rest so that a ``machine independent'' package could be created > without having the developer jump through lots of hops. This might > happen if a few functions were leftt out that didn't meet the other > criteria. However, some left it was not a strong enough reason to > leave it in. Thoughts? My gut feeling is that this is not important. It might even give implementors the wrong idea. If the rest of MPI can be easily layered on top of the subset, non-vendors will do it. Vendors will then have less incentive to put the effort into a high-performance implementation of the full standard. > The draft says that the subset should be able to be done in 6-12 > months. Do we exclude any functionality which cannot be done in this > time scale on ALL systems. That is, if it is difficult on one machine > but fine on all the rest, does this exclude it from the subset? This > clearly gets harder and more subjective. This is really an issue of how much effort a vendor is willing/able to commit to MPI. We can't legislate this. I think we should leave this detail out of the draft. > Itemized Functionality > > The Table below sumarizes the specific functionality included and excluded > from the subset. > ... Do we need GET_LEN() if we have PROBE()? (I seem to remember some discussion about this but I'm not sure...) > If we eliminated communicaiton buffers then the number of routines > would be greatly reduced. We would only have the ``C'' routines in > collective communications and contiguous in pt-2-pt. Right now I > think we should leave it in but I point this out I think communication buffers fall in to the category of additional features that provide incentive to use MPI. Contexts are another. I feel strongly that contexts should be kept in. I don't feel strongly either way on communication buffers being in the subset. Vendors? > The heterogeneous cases (hvector, hindexed) seem very easy to do but > are another set of functions. They allow elements of a C type > structure to be pulled out in the subset. Leave in? If they're "easy" let's leave them in. > Using INIT, START, COMPLETE, FREE is not what most people do today but > does allow for greater speed. It seems as if you would have this in a > system anyway and it would be useful to the user. Should we include > it? Again, I think contexts are a greater "value-added" item. I don't feel strongly either way on the low-level routines. Tom Henderson From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 11:49:07 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA16884; Wed, 16 Jun 93 11:49:07 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA22761; Wed, 16 Jun 93 11:49:22 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 11:49:21 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from gw1.fsl.noaa.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA22751; Wed, 16 Jun 93 11:49:19 -0400 Received: by gw1.fsl.noaa.gov (5.57/Ultrix3.0-C) id AA18216; Wed, 16 Jun 93 15:49:40 GMT Received: by nipmuc.fsl.noaa.gov (4.1/SMI-4.1) id AA25041; Wed, 16 Jun 93 09:53:03 MDT Date: Wed, 16 Jun 93 09:53:03 MDT From: hart@nipmuc.fsl.noaa.gov (Leslie Hart) Message-Id: <9306161553.AA25041@nipmuc.fsl.noaa.gov> To: mpi-iac@cs.utk.edu Subject: Draft Ok, I confess, I was the one that suggested that issues not dealt with in the standard should have recommended implementation styles in the IAC section. I've been convinced otherwise. I will try to explain why I suggested it and throw out an alternate suggestion. I felt there was some standard practice that would probably be augmented in most all vendors implementations. I was concerned that this would lead to a fracturing of the standard (i.e. there would be MPI-TMC, MPI-Intel, MPI-Meiko, ...). I also thought that this set might be small and fairly easy to identify (apparently I was wrong on this point :-). I still have a concern about mpi-hrecv() and such appearing in some vendors implementations and having different syntax and/or semantics. A possible solutions is to ask that no other routines appear with the prefix mpi_ (or whatever the language binding subcommittee decides). This would relieve my concern and make sure all the "good" names haven't been taken when (or if) we decide to standardize these features. It would also make it clear to the user when an extension is being used and when the standard is being used. Another solution that may be safer still is to suggest that the extension prefix be mpi_. This would have the added benefit of preventing accidental name clashes across vendors extensions to MPI. I am interested if anyone else shares these concerns and has alternate (hopefully more elegant) solutions. Regards, Leslie Hart (hart@fsl.noaa.gov) From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 12:17:23 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA17072; Wed, 16 Jun 93 12:17:23 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA24726; Wed, 16 Jun 93 12:17:40 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 12:17:39 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA24718; Wed, 16 Jun 93 12:17:38 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA14108; Wed, 16 Jun 93 12:17:56 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00761; Wed, 16 Jun 93 12:17:55 EDT Date: Wed, 16 Jun 93 12:17:55 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306161617.AA00761@b125.super.org> To: mpi-iac@cs.utk.edu In-Reply-To: <9306161553.AA25041@nipmuc.fsl.noaa.gov> (hart@nipmuc.fsl.noaa.gov) Subject: Re: Draft I share some of Leslie's concerns but agree that it does not belong in the IAC chapter. I think the full group needs to decide how to deal with this. Why not bring it up next week? As for not using a straight MPI name for extensions: that sounds good. The idea of mpi_ may lead to the problem that if several vendors agree to the same syntax then the code still would not be portable due to the vendor id. I doubt that vendor X would want to use a routine name with vendor Y's name. They might deliberately change the name for no good reason. I have mixed feeling on what exactly to do. Steve From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 13:21:55 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA17628; Wed, 16 Jun 93 13:21:55 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA29348; Wed, 16 Jun 93 13:21:40 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 13:21:39 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from chenas.inria.fr by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA29339; Wed, 16 Jun 93 13:21:25 -0400 Received: from irgate.ifp.fr by chenas.inria.fr (5.65c8d/92.02.29) via Fnet-EUnet id AA03410; Wed, 16 Jun 1993 19:21:06 +0200 (MET) Received: from irsun21.ifp.fr by irgate.ifp.fr, Wed, 16 Jun 93 19:21:27 +0200 Received: by irsun21.ifp.fr, Wed, 16 Jun 93 19:20:30 +0200 Date: Wed, 16 Jun 93 19:20:30 +0200 From: stoessel@irsun21.ifp.fr (Alain Stoessel) Message-Id: <9306161720.AA08596@irsun21.ifp.fr> To: lederman@super.org Subject: Comments on draft Cc: mpi-iac@cs.utk.edu Hi IAC members, some remarks about Steve's draft. 1) The schedule of the implementation of the subset (6 months to 1 year) should not be in the chapter as a recommandation but we could make it appear as a motivation for defining a subset = having a quick availability of the basis of MPI 2) Concerning the features that should to be in the subset: Of course, we have to include basic features we can find in "common standards" such as PVM.... But, if we throw away contexts, heterogenous buffers, I see no reason to migrate to MPI. (Keep in mind that having a portable code is not a good reason because for the moment or in a few months you could find PVM3 with a efficient implementation on all platforms) If we would like to realize some libraries, contexts are the only way to do it. 3) In order to define a really useful subset, perhaps we can build some tipical examples. So, we could determine what is useful and what is not. Comments ???? Alain +-----------------------+------------------------------+ | Alain STOESSEL | Institut Francais du Petrole | | Tel: 33.1.47.52.71.33 | Parallel processing group | | Fax: 33.1.47.52.70.22 | 1-4 Av de Bois-Preau | | | 92506 RUEIL-MALMAISON | +-----------------------+------------------------------+ | Email: stoessel@irsun21.ifp.fr | +-----------------------+------------------------------+ From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 13:36:53 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA17755; Wed, 16 Jun 93 13:36:53 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA00420; Wed, 16 Jun 93 13:37:13 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 13:37:11 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA00409; Wed, 16 Jun 93 13:37:08 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA14718; Wed, 16 Jun 93 13:37:29 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00776; Wed, 16 Jun 93 13:37:29 EDT Date: Wed, 16 Jun 93 13:37:29 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306161737.AA00776@b125.super.org> To: mpi-iac@cs.utk.edu Subject: IAC and context I just want to clarify that the current chapter only includes the pt-2-pt and collective communications routines. These are the only chapters which have had a first reading (except profiling). I plan to discuss the other chapters at our meeting next week and incorporate context, topology, etc. after their first reading. I think we will agree that routines and ideas from these other chapters will be important for adding to the subset. Steve From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 16:30:46 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA19164; Wed, 16 Jun 93 16:30:46 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA11391; Wed, 16 Jun 93 16:30:36 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 16:30:34 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from timbuk.cray.com by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA11376; Wed, 16 Jun 93 16:30:32 -0400 Received: from teak18.cray.com by cray.com (4.1/CRI-MX 2.19) id AA21301; Wed, 16 Jun 93 15:30:52 CDT Received: by teak18.cray.com id AA17839; 4.1/CRI-5.6; Wed, 16 Jun 93 15:30:47 CDT From: par@teak.cray.com (Peter Rigsbee) Message-Id: <9306162030.AA17839@teak18.cray.com> Subject: Re: comments on latest IAC draft To: mpi-iac@cs.utk.edu Date: Wed, 16 Jun 93 15:30:42 CDT In-Reply-To: <9306161450.AA00746@b125.super.org>; from "Steve Huss-Lederman" at Jun 16, 93 10:50 am X-Mailer: ELM [version 2.3 PL11b-CRI] Tom Henderson writes: > > The heterogeneous cases (hvector, hindexed) seem very easy to do but > > are another set of functions. They allow elements of a C type > > structure to be pulled out in the subset. Leave in? > > If they're "easy" let's leave them in. BZZZZT! Wrong. ;-( IMO, this is not sufficient justification for adding a feature. Yes, it may be easy to code this. But this is only one cost of adding a feature. Others include: - time to test it - time to test combinations and permutations introduced as a result of adding this feature - time to document it (man pages, reference manual, user guide, training material) - the IAC subset is larger and will be less appealing to vendors - the IAC subset is larger and will be less appealing to users (!) As a vendor, my experience has been that there tends to be some relatively fixed and high cost for each "feature" that you add to something. For an "easy" feature, this fixed cost often exceeds the cost of implementation. This is (in part) why I think it is fair to look at the number of functions in MPI as a measure of the complexity and effort required to implement the system. (And why I shudder when I do so...) I don't have any strong opinion about this particular feature. But ease of implementation must be considered along with the other benefits of a feature; please don't let this be your deciding criterion. - Peter Rigsbee From owner-mpi-iac@CS.UTK.EDU Wed Jun 16 17:08:28 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA19732; Wed, 16 Jun 93 17:08:28 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA13996; Wed, 16 Jun 93 17:08:43 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Wed, 16 Jun 1993 17:08:42 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from gw1.fsl.noaa.gov by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA13987; Wed, 16 Jun 93 17:08:39 -0400 Received: by gw1.fsl.noaa.gov (5.57/Ultrix3.0-C) id AA19030; Wed, 16 Jun 93 21:09:00 GMT Received: by macaw.fsl.noaa.gov (4.1/SMI-4.1) id AA02298; Wed, 16 Jun 93 15:07:21 MDT Date: Wed, 16 Jun 93 15:07:21 MDT From: hender@macaw.fsl.noaa.gov (Tom Henderson) Message-Id: <9306162107.AA02298@macaw.fsl.noaa.gov> To: par@teak.cray.com Subject: Re: comments on latest IAC draft Cc: mpi-iac@cs.utk.edu Peter Rigsbee writes: > Tom Henderson writes: > > > > The heterogeneous cases (hvector, hindexed) seem very easy to do but > > > are another set of functions. They allow elements of a C type > > > structure to be pulled out in the subset. Leave in? > > > > If they're "easy" let's leave them in. > > BZZZZT! Wrong. ;-( > > As a vendor, my experience has been that there tends to be some relatively > fixed and high cost for each "feature" that you add to something. For an > "easy" feature, this fixed cost often exceeds the cost of implementation. > This is (in part) why I think it is fair to look at the number of functions > in MPI as a measure of the complexity and effort required to implement the > system. (And why I shudder when I do so...) Peter, I think you're saying "it ain't easy"... :-) This is exactly the kind of detailed information we need to hear from vendors in this subcommittee! I hope you'll be in Dallas next week to make your arguments in person. Tom Henderson From owner-mpi-iac@CS.UTK.EDU Thu Jun 17 19:00:46 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA02495; Thu, 17 Jun 93 19:00:46 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA24226; Thu, 17 Jun 93 19:00:51 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Thu, 17 Jun 1993 19:00:50 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA24179; Thu, 17 Jun 93 19:00:44 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA01273; Thu, 17 Jun 93 19:01:07 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA01110; Thu, 17 Jun 93 19:01:06 EDT Date: Thu, 17 Jun 93 19:01:06 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9306172301.AA01110@b125.super.org> To: mpi-iac@cs.utk.edu Subject: latest (last :-) draft of IAC Hi All! Attached is the latest LaTeX version of the IAC chapter. (It and the PostScript version are available via anonymous ftp from ftp.super.org) It has not sat as long as it should for me to check over but I want to send it to the whole committee and Steve Otto by early afternoon tomorrow (Friday). If you have time send your comment for last minute inclusion. The main changes from the last draft are: 1) Section 1.2 on Criteria has been changed to reflect the comments made. 2) Several discussion points were removed to clean it up for general distribution. One point I will comment on. Tom asked if we need GET_LEN if we have PROBE. Thanks for asking; one of the few things I suggested that actually made it into the standard but won't sneak into the subset :-). GET_LEN allows you to determine the length in bytes of a probe which returns a message with a communication buffer. You will get the length from the PROBE where the type of data given is assumed for the whole message. This may not be true of a communication buffer where there may be several different types of data. However, in the subset proposed, only one append is allowed for a communication buffer so it will have only have one type of data in it. Thus, the value you get back from PROBE will be fine. Sound simple enough :-). Is it correct! See you in a few days.... Steve ---------------------------------------------------------------------- \documentstyle[12pt]{article} \newcommand{\discuss}[1]{ \ \\ {\small {\bf Discussion:} #1} } \newcommand{\missing}[1]{ \ \\ {\small {\bf Missing:} #1} } \begin{document} \title{ Initial Implementation Subset } \author{Steven Huss-Lederman} \maketitle \section{Initial Implementation Subset} \subsection{Introduction} \par This chapter defines a minimal subset of MPI for initial implementation. This subset is being defined so that consistent implementations can appear more rapidly. It was recognized early in the process that MPI needed to appear as quickly as possible and practical. The creation of a subset will hopefully allow users earlier access to the standard and still allow for the writing of portable message passing codes. \par This subset should not in any way be construed as a limitation on MPI implementations. It is strictly the minimum necessary to have an initial MPI subset conforming implementation. It is hoped that an officially sanctioned subset will encourage and allow implementors to introduce MPI in a more timely fashion. It should be noted, however, that implementation of the subset does not make an implementation conform with MPI. The subset is only a potential first step in the process. All implementations must ultimately conform to the entire standard; implementations are encouraged to do the full standard as rapidly as possible. \par The subset presented is consistent with the complete MPI standard. This was an important goal so the additional MPI features could be added without changing any functionality from the user's perspective. Thus, users can be assured that programs written now for the subset will run without modification under the full MPI standard. Furthermore, using additional features of the full MPI standard in the future will not require changes to code already written. Users may use MPI features outside this subset that are offered by various implementors. However, people who require portability during the early development of MPI may experience some difficulties until later in the development process. \subsection{Criteria and Rational} \par Having the subset be consistent with the entire MPI standard was considered critical to the effort. In addition to this, there were many possible criteria to use in determining the elements of MPI to include in the subset. The main criteria used were that the MPI subset should \begin{enumerate} \item contain routines that are as close as possible to current standard practice to minimize the effort to port codes. \item contain as many new and important MPI features as possible. \item allow developers to be able to have the subset show up as rapidly as possible while still meeting the other criteria. \end{enumerate} \par There were many rationales for these criteria. It was recognized that it is impossible to come up with an ideal subset and compromises were necessary. It was felt that current users should be comfortable in migrating to MPI. Thus, the subset should contain the message passing elements that represent common practice today. Furthermore, it was felt that the initial (and later) version of MPI should maintain efficiency. Otherwise users could suffer from disenchantment with MPI on their first usage and may never give the standard a second try. Having the standard routines in the subset should encourage developers to optimized these routines in the initial version of MPI. Also, though some felt that the portability offered by the MPI subset was sufficient to entice users, many felt that the subset should contain some new feature(s) over and above current common practice as an added incentive. The additional items selected were meant to represent some of the significant new features of MPI. Balanced against these first two goals is the need for the subset to show up in a timely fashion. Thus, each feature chosen for inclusion in the subset was deemed of sufficient importance to outweigh its added complexity in implementing the subset. Though some functions seem easy to implement there are often overlooked costs in testing, documentation and development that was considered before a feature was added to the MPI subset. Inclusion of too many routines might lead to moderately efficient implementation of them all instead of a very efficient and possibly more useful implementation of a smaller subset. \discuss{ Some felt that we should aim the subset at typical users. Should this be another criteria? Is the compatibility with current practice enough? } \discuss{ Should it be a criteria that the subset and common practice features be implemented efficiently. The text touches on this but it is not a specific item. I did not give it a bullet since it seems like a quality of implementation issue. Poorly implemented subsets will be forced out by the market. } \discuss{ Should it be a criteria that the rest of MPI be able to be layered on top so users might get early (though lower performance) access to the complete standard? This is aimed at allowing easy and efficient layering of the rest so that a ``machine independent'' package could be created without having the developer jump through lots of hops. This might happen if a few functions were left out that didn't meet the other criteria. However, some felt it was not a strong enough reason to leave it in and my lead to poor MPI implementations of these layered routines. } \subsection{Subset Functionality} \discuss{ This section only discuss the pt-to-pt and collcomm chapters. The other chapters will be added after they are read at meetings and finalized. } \subsubsection{Itemized Functionality} The Table below summarizes the specific functionality included and excluded from the subset. \goodbreak \vskip 0.2truein \def\chpt{1} \def\chcol{2} \vbox{ \halign{\hfil#\hfil\quad &\hfil#\hfil\quad &\hfil#\hfil\quad &\hfil#\hfil \cr Section&Operation&Included&Excluded \cr \noalign{\kern 2pt} \noalign{\hrule} \noalign{\kern 10pt} \multispan 4 \hfil \underline{Point to Point Communication} \hfil \cr \noalign{\kern 4pt} \chpt.5.2&Buffer Operations&``All'' functions&Multiple appends, h versions(?) \cr \chpt.7&Comm. Mode&Standard&Ready, Synchronous \cr \chpt.8.1&Comm. Object Creation&All(?)& \cr \chpt.8.2&Comm. Start&START(if have INIT)& \cr \chpt.8.3&Comm. Completion&All& \cr \chpt.8.4&Multiple Completion&All& \cr \chpt.9&Blocking Comm.&Std. version&Ready, Synch. version \cr \chpt.10&Nonblocking Comm.&Std. version&Ready, Synch. version \cr \chpt.11&Contiguous Buffer Comm.&Std. version&Ready, Synch. version \cr \chpt.12&&PROBE&CANCEL,GET\_LEN \cr \noalign{\kern 10pt} \multispan 4 \hfil \underline{Collective Communication} \hfil \cr \noalign{\kern 4pt} \chcol.4&Synchronization&All& \cr \chcol.5&Data Move&All(?)& \cr \chcol.6&Global Compute&MPI Ops&User Ops \cr } } \vskip 0.2truein \noindent All other general functionality is included in the subset. Thus, all matching criteria, order, etc. are part of the subset. \subsubsection{Point to Point Functionality} The operations involving contiguous buffers are included since they represent standard practice today. In addition, the communications buffers are also included because they offer an important new feature in MPI. However, to simplify the implementation, the communication buffer will be limited to one component, e.g., only one append is allowed. This limitation will still allow the user access to the strided and indexed cases but require more complex cases to be done by the user. \discuss{ If we eliminated communication buffers then the number of routines would be greatly reduced. We would only have the ``C'' routines in collective communications and contiguous in pt-2-pt. Right now I think we should leave it in but I point this out } \discuss{ The heterogeneous cases (hvector, hindexed) seem very easy to code but are another set of functions. They allow elements of a C type structure to be pulled out in the subset. It has been pointed out that even simple routines have a cost of testing, documentation, etc. that can easily outweigh the coding cost. } Of the three types of communication modes, the STANDARD mode represents standard practice and is included. The other two modes are not used as commonly and therefore excluded. This applies to all of the point-to-point communications routines. The common versions of blocking and nonblocking send and receive are included. In addition, the low level routines of INIT and START are included. These should help users who wish greater control over communications for optimization purposes. For example, this would allow for the reuse of a persistent handle. \discuss{ Using INIT, START, COMPLETE, FREE is not what most people do today but does allow for greater speed. It seems as if you would have this in a system anyway and it would be useful to the user. Should we include it? } \subsubsection{Collective Communication Functionality} The collective communication routines have the same general restrictions as the point to point routines. Therefore, the buffer descriptors will be limited to one entry. A collective communication operates on a group. This defines the scope of the operation. Many current users only operate on all the processes. This is the MPI\_ALL group in MPI. To simplify the subset, groups will be limited to be MPI\_ALL. \discuss{ There are a lot of data move functions. I could not think of a way to draw a line to exclude some. Do we want all of these in the subset. How often are ALLCAST, ALLSCATTER used? } \discuss{ For the subset do we want both the REDUCE and ALLREDUCE versions? } \end{document} From owner-mpi-iac@CS.UTK.EDU Mon Aug 9 13:12:14 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA14264; Mon, 9 Aug 93 13:12:14 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA14083; Mon, 9 Aug 93 13:11:47 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Mon, 9 Aug 1993 13:11:45 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA14071; Mon, 9 Aug 93 13:11:24 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA17329; Mon, 9 Aug 93 13:11:14 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00734; Mon, 9 Aug 93 13:11:19 EDT Date: Mon, 9 Aug 93 13:11:19 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9308091711.AA00734@b125.super.org> To: mpi-iac@cs.utk.edu Subject: latest version of chapter - first message Dear committee, I appologize for sending this so late but thing have been crazy here. Breaking with tradition because this is so late, attached is the PostScript version of the report. This is how it should appear in the latest draft. The next (unless netlib rearranges the order) message will have LaTeX which will be slightly different since the cross references will not be defined. I will make sure that hard copy of this is available in Dallas on Wednesday for everyone. I send this out for those leaving late who like to have things to read on the plane :-). Comments, as always, are welcome. Steve P.S. - Both of these are also available via anonymous ftp from ftp.super.org in pub/mpi. ---------------------------------------------------------------------- %!PS-Adobe-2.0 %%Creator: This is dvips, version 5.35 (C) 1986-90 Radical Eye Software %%Title: mpi-report.dvi %%Pages: 6 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginProcSet: tex.pro /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /islandscape false N /vsize 10 N /@rigin{islandscape{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale Resolution VResolution vsize neg mul translate}B /@letter{/vsize 10 N}B /@landscape{/islandscape true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@legal{/vsize 13 N}B /@manualfeed {statusdict /manualfeed true put}B /@copies{/#copies exch N}B /@FontMatrix[1 0 0 -1 0 0]N /@FontBBox[0 0 0 0]N /dmystr(ZZf@@@)N /newname{dmystr cvn}B /df{ /scalefactor 1 N /fntrx @FontMatrix N df-tail}B /dfs{div /scalefactor exch N /fntrx[scalefactor 0 0 scalefactor neg 0 0]N df-tail}B /df-tail{/maxcc exch N /numcc exch N /fontname exch N dmystr 2 fontname cvx(@@@@)cvs putinterval newname 8 dict N newname load begin /FontType 3 N /FontMatrix fntrx N /FontBBox @FontBBox N /BitMaps numcc array N /base maxcc string N /BuildChar{ CharBuilder}N /Encoding IdentityEncoding N end fontname{/foo setfont}2 array copy cvx N fontname load 0 dmystr 6 string copy cvn cvx put /ctr 0 N[}B /E{ pop newname dup load definefont setfont}B /ch-image{ch-data 0 get dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /ch-width{ch-data 1 get}B /ch-height{ch-data 2 get}B /ch-xoff{ch-data 3 get}B /ch-yoff{ch-data 4 get}B /ch-dx{ch-data 5 get}B /ctr 0 N /CharBuilder{save 3 1 roll exch dup /base get 2 index get exch /BitMaps get exch get /ch-data exch N pop /ctr 0 N ch-data null ne{ch-dx 0 ch-xoff ch-yoff neg ch-xoff ch-width add ch-height ch-yoff sub setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-height ch-yoff sub .1 add]{ch-image}imagemask}if restore}B /D{newname load dup /base get 3 2 roll ctr put /BitMaps get exch ctr exch dup dup 5 get scalefactor div 5 exch put put /ctr ctr 1 add N[}B /bop{userdict /bop-hook known{bop-hook}if /SaveImage save N @rigin 0 0 moveto}B /eop{userdict /eop-hook known{eop-hook} if clear SaveImage restore showpage}B /@start{userdict /start-hook known{ start-hook}if /VResolution exch N /Resolution exch N 1000 div /DVImag exch N /IdentityEncoding 256 array N 0 1 255{IdentityEncoding exch 1 string dup 0 3 index put cvn put}for}B /p /show load N /RuleMatrix[1 0 0 -1 -.1 -.1]N /BlackDots 8 string N /v{gsave currentpoint translate false RuleMatrix{ BlackDots}imagemask grestore}B /a{moveto}B /delta 0 N /tail{dup /delta exch N 0 rmoveto}B /M{exch p delta add tail}B /b{exch p tail}B /c{-4 M}B /d{-3 M}B /e {-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /l{p -4 w}B /m{ p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /w{0 rmoveto}B /x{0 exch rmoveto}B /y{3 2 roll p a}B /bos{/section save N}B /eos{clear section restore}B end %%EndProcSet TeXDict begin 1000 300 300 @start /fa 22 90 df<001F0000001F0000003F8000003B80 00003B8000007BC0000073C0000071C00000F1E00000E1E00000E0E00001E0F00001E0F00001C0 F00003C0780003C078000380780007803C0007803C0007003C000FFFFE000FFFFE000FFFFE001E 000F001E000F003C000F803C0007803C000780780007C0780003C0780003C0F00003E0>27 32 1 0 30]65 D21 32 5 0 30]66 D<001FC000FFF801FFFC03E03C07800C0F00001E00003E00003C00007C0000780000 780000780000F00000F00000F00000F00000F00000F00000F00000F00000780000780000780000 7C00003C00003E00001E00000F000207800E03E03E01FFFC00FFF0001FC0>23 34 3 1 29]67 D24 32 5 0 33]68 D19 32 5 0 27]69 D18 32 5 0 26]70 D<001FE000FFF801FFFE03E03E07800E0F00001E00003E00003C00007C00007800007800007800 00F00000F00000F00000F00000F00000F00000F003FEF003FE7803FE78001E78001E7C001E3C00 1E3E001E1E001E0F001E07801E03E03E01FFFE00FFF8001FC0>23 34 3 1 30]71 D21 32 5 0 32]72 D4 32 4 0 13]73 D17 32 5 0 25]76 D29 32 5 0 40]77 D21 32 5 0 32]78 D<003F000000FFC00003FFF00007E1F8000F807C001F003E 001E001E003C000F003C000F00780007807800078078000780F00003C0F00003C0F00003C0F000 03C0F00003C0F00003C0F00003C0F00003C0F00003C0F80007C07800078078000780780007803C 000F003C000F001E001E001F003E000F807C0007E1F80003FFF00000FFC000003F0000>26 34 3 1 33]79 D20 32 5 0 29]80 D22 32 5 0 29]82 D<01FC0007FF800FFFC01F03C03C00C03C00007800007800007800007800007800007C00 003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C00003E00001E00001E00001 E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F800>19 34 2 1 25]83 D26 32 2 0 31]84 D20 33 5 1 31]85 D27 32 1 0 30]86 D40 32 1 0 43]87 D<780007807C000F003E001F001E001E000F 003C000F807C000780780003C0F00003E1F00001F1E00000F3C000007FC000007F8000003F0000 001F0000001E0000003F0000007F8000007FC00000F3C00001F1E00001E0F00003C0F80007C078 0007803C000F003E001F001E001E000F003C000F807C0007C0780003C0F00003E0>27 32 1 0 30]88 D29 32 0 0 30]89 D E /fb 40 122 df<000078007C7800FC7801FC7803C0000380000780000780000780000780000780 00078000078000078000FFFC78FFFC78FFFC780780780780780780780780780780780780780780 78078078078078078078078078078078078078078078078078078078078078078078078078>21 36 0 0 26]12 D<787878781830306060E0>5 10 4 6 14]44 D4 4 5 0 14]46 D<01F00007FC000FFE001F1F003C07803C07807803C07803C07803C07001C0F001 E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001 E0F001E07803C07803C07803C07803C03C07803C07801F1F000FFE0007FC0001F000>19 35 2 1 24]48 D<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003C003C003C003C003 C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0FFFFFFFFFFFF>16 34 4 0 24]49 D<03F0000FFC001FFE003C1F003007807007C06003C0E003E0C001E04001E040 01E00001E00001E00001E00003C00003C0000780000780000F00001E00003C0000780000F00001 E00001C0000380000700000E00001C0000380000700000FFFFE0FFFFE0FFFFE0>19 34 2 0 24]50 D<01F00007FC001FFF003E0F003807807003C02003C02003C00003C00003C000 03C0000780000780000F00001E0003FC0003F80003FE00000F000007800003C00003C00001E000 01E00001E00001E00001E08001E0C003C0E003C07007803C0F801FFF000FFC0003F000>19 35 2 1 24]51 D<001F00001F00002F00002F00006F0000EF0000CF0001CF0001CF00038F0003 8F00078F00070F000F0F000E0F001E0F003C0F003C0F00780F00780F00F00F00FFFFF8FFFFF8FF FFF8000F00000F00000F00000F00000F00000F00000F00000F00000F00>21 33 1 0 24]52 D<3FFF803FFF803FFF803C00003C00003C00003C00003C00003C00003C00003C 00003C00003CF8003FFE003FFF003F0F803E07803C03C03803C00001E00001E00001E00001E000 01E00001E00001E04003C04003C0E003C07007807C1F003FFE000FFC0003F000>19 34 2 1 24]53 D<007E0001FF0003FF0007C1000F00001E00001E00003C00003C000078000078 000078F800F1FE00F7FF00FF0F80FC0780F803C0F803C0F801C0F001E0F001E0F001E0F001E0F0 01E07001E07001E07801E07803C03803C03C03801C07801F0F000FFE0007FC0001F000>19 35 2 1 24]54 D19 33 2 0 24]55 D23 35 5 0 32]66 D<000FF000007FFC0000FFFF0001F01F0003C00700078000000F0000001E0000 003E0000003C0000003C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000000F0000000F0000000F0000000F00000007800000078000000780000003C0000003C 0000003E0000001E0000000F0000000780008003C0038001F00F8000FFFF00007FFC00000FF000 >25 37 3 1 31]67 D21 35 5 0 29]69 D20 35 5 0 28]70 D<000FF000003FFE0000FFFF8001F80F8003E00380078000000F0000001E0000 001E0000003C0000003C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000000F0000000F000FFC0F000FFC0F000FFC0780003C0780003C0780003C03C0003C03C 0003C01E0003C01E0003C00F0003C0078003C003E003C001F807C000FFFFC0003FFF00000FF800 >26 37 3 1 33]71 D4 35 4 0 13]73 D18 35 5 0 26]76 D31 35 5 0 42]77 D22 35 5 0 31]80 D28 35 2 0 33]84 D<07E01FF83FFC381E201E000F000F000F000F00FF07FF1FFF3E0F780FF00FF0 0FF00FF00FF83F7FFF3FEF1F8F>16 22 2 0 23]97 D<01FC0007FF000FFF801F03803C018078 0000780000700000F00000F00000F00000F00000F00000F000007800007800007800003C00401F 03C00FFFC007FF8001FC00>18 22 2 0 22]99 D<0003C00003C00003C00003C00003C00003C0 0003C00003C00003C00003C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C0 7803C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC0 1FFFC00FFBC003E3C0>18 35 2 0 25]100 D<03F00007FC001FFE003E0F003C07807803807803 80F001C0FFFFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F07800FFF 8007FF0001F800>18 22 2 0 22]101 D<01F07807FFF80FFFF81F1F001E0F003C07803C07803C 07803C07803C07801E0F001F1F000FFE001FFC0019F0003800003800003C00001FFE001FFFC01F FFE03FFFF07801F07800F8F00078F00078F00078F000787800F03E03E01FFFC00FFF8001FC00> 21 33 1 11 24]103 D4 35 3 0 11]105 D4 35 3 0 11]108 D30 22 4 0 39]109 D16 22 4 0 25]110 D<01FC0007FF000FFF801F07C03C01E078 00F07800F0700070F00078F00078F00078F00078F00078F000787800F07800F07C01F03E03E01F 07C00FFF8007FF0001FC00>21 22 1 0 24]111 D18 32 4 10 25]112 D<03E3C007FBC00FFFC01F0FC03C07C07C03C07803C0F803C0F003C0F0 03C0F003C0F003C0F003C0F003C0F803C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C000 03C00003C00003C00003C00003C00003C00003C00003C00003C00003C0>18 32 2 10 25]113 D11 22 4 0 17]114 D<07F01FFC3FFE3C0E7806780078007C 003F003FF01FF80FFC01FE001F000F000F000FC00FF81EFFFE3FFC0FF0>16 22 1 0 19]115 D<0F000F000F000F000F000F00FFF8FFF8FFF80F000F000F000F000F000F000F 000F000F000F000F000F000F000F000F080F1C07FC07F803E0>14 28 1 0 18]116 D16 22 4 0 25]117 D19 22 1 0 22]118 D<7801F07C01E03E03C01E07C00F0780078F0007DE 0003FC0001FC0000F80000700000F80001FC0003DC00039E00078F000F07801E07801E03C03C01 E07800F0F800F8>21 22 0 0 22]120 D19 32 1 10 22]121 D E /fc 17 123 df<003FC000FFF003C0F00780300F00001E00003C00003C 0000780000780000780000F00000F00000F00000F00000F00000F00000F00000F00000F0000078 00007800007800003C00003C00001E00000F000807801803C07800FFF0003F80>21 31 3 1 27]67 D4 29 4 0 12]73 D15 29 4 0 22]76 D27 29 4 0 36]77 D20 29 4 0 29]78 D<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F003C000F00780007 807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000 03C0F80007C078000780780007807C000F803C000F003E001F001F003E000F807C0007C0F80003 FFF00001FFE000003F0000>26 31 2 1 31]79 D20 29 4 0 27]80 D21 29 4 0 27]82 D20 30 4 1 29]85 D<0FC03FF07FF87038401C001C001C00FC0FFC3FFC781CE01CE01CE01CF0 7C7FFC7FDC3F1C>14 18 2 0 20]97 D<07C01FE03FF078787018601CFFFCFFFCFFFCE000E000 E000700070043C1C3FFC1FF807E0>14 18 2 0 18]101 D4 29 2 0 10]105 D15 29 3 0 20]107 D14 18 3 0 21]110 D9 18 3 0 14]114 D<1FC03FF07FF0F030E000E0 00F0007F003FC01FE000F0003800388038F078FFF07FE01FC0>13 18 1 0 16]115 D<7FFC7FFC7FFC007800F000E001E003C0038007000F001E001C003C007800FFFCFF FCFFFC>14 18 1 0 18]122 D E /fd 62 123 df<007E1F0001C1B1800303E3C00703C3C00E03 C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E 01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 0E01C0000E01C0000E01C0000E01C0007F87FC00>26 29 0 0 24]11 D<007E0001C180030180 0703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8 >21 29 0 0 23]12 D<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C07FCFF8>21 29 0 0 23]13 D<003F07E00001C09C1800 0380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E000000E00E000 000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0 1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C007FC7FCFF80>33 29 0 0 35]14 D<6060F0F0F8F86868080808 08080810101010202040408080>13 12 1 -17 21]34 D<60F0F8680808081010204080>5 12 4 -17 12]39 D<004000800100020006000C000C0018001800300030007000600060006000 E000E000E000E000E000E000E000E000E000E000E000E000600060006000700030003000180018 000C000C0006000200010000800040>10 42 3 11 16]40 D<800040002000100018000C000C00 0600060003000300038001800180018001C001C001C001C001C001C001C001C001C001C001C001 C0018001800180038003000300060006000C000C0018001000200040008000>10 42 2 11 16]41 D<00060000000600000006000000060000000600000006000000060000000600 000006000000060000000600000006000000060000FFFFFFE0FFFFFFE000060000000600000006 000000060000000600000006000000060000000600000006000000060000000600000006000000 060000>27 28 2 4 32]43 D<60F0F0701010101020204080>4 12 4 8 12]44 D11 2 0 -8 14]45 D<60F0F060>4 4 4 0 12]46 D<000100030006000600 06000C000C000C0018001800180030003000300060006000C000C000C001800180018003000300 0300060006000C000C000C00180018001800300030003000600060006000C000C000>16 41 2 10 21]47 D<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E0 07E007E007E007E007E00760066006700E300C300C18180C3007E0>16 29 2 1 21]48 D<4000007FFF807FFF007FFF00400200800400800400800800001000001000002000 00600000400000C00000C00001C000018000018000038000038000038000038000078000078000 078000078000078000078000030000>17 29 2 1 21]55 D<03C00C301818300C700C600EE006 E006E007E007E007E007E0076007700F300F18170C2707C700060006000E300C780C7818701020 3030C00F80>16 29 2 1 21]57 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C0 00800180010001000100010001000100000000000000000000000300078007800300>15 29 2 0 20]63 D<000600000006000000060000000F0000000F0000000F000000178000001780 00001780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F0000180 F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F001E 001F00FF80FFF0>28 29 1 0 31]65 D<001F808000E0618001801980070007800E0003801C00 03801C00018038000180780000807800008070000080F0000000F0000000F0000000F0000000F0 000000F0000000F0000000F0000000700000807800008078000080380000801C0001001C000100 0E000200070004000180080000E03000001FC000>25 30 2 1 30]67 D27 28 2 0 32]68 D24 28 2 0 28]69 D22 28 2 0 27]70 D<001F808000E0618001801980070007800E0003801C0003801C0001803800018078 0000807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0 F0000F80700007807800078078000780380007801C0007801C0007800E00078007000B80018011 8000E06080001F8000>28 30 2 1 33]71 D26 28 2 0 31]72 D12 28 1 0 15]73 D<1FFF00F80078007800780078007800780078007800780078007800 7800780078007800780078007800787078F878F878F878F0F040E021C01F00>16 29 1 1 21]74 D21 28 2 0 26]76 D33 28 2 0 38]77 D26 28 2 0 31]78 D<003F800000E0E0000380380007001C00 0E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001 E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C00 07801C0007000E000E0007001C000380380000E0E000003F8000>27 30 2 1 32]79 D23 28 2 0 28]80 D28 29 2 1 31]82 D<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800007C00007FC0 003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001C0C00180C001 80E00300D00200CC0C0083F800>18 30 2 1 23]83 D<7FFFFFC0700F01C0600F00C0400F0040 400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F0000000F0000000F00 00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000000F0000000F0000001F800003FFFC00>27 28 1 0 30]84 D26 29 2 1 31]85 D40 29 1 1 43]87 D<08081010202040404040808080808080B0B0F8F878783030>13 12 6 -17 21]92 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00 701C00601C00E01C40E01C40E01C40603C40304E801F8700>18 18 2 0 21]97 D19 29 1 0 23]98 D<07E00C301878307870306000E000E000 E000E000E000E00060007004300418080C3007C0>14 18 2 0 18]99 D<003F00000700000700 00070000070000070000070000070000070000070000070003E7000C1700180F00300700700700 600700E00700E00700E00700E00700E00700E00700600700700700300700180F000C370007C7E0 >19 29 2 0 23]100 D<03E00C301818300C700E6006E006FFFEE000E000E000E0006000700230 0218040C1803E0>15 18 1 0 18]101 D<00F8018C071E061E0E0C0E000E000E000E000E000E00 FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE0>15 29 0 0 13]102 D<00038003C4C00C38C01C3880181800381C00381C00381C00381C001818001C 38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0C000C0C0 00C06001803003001C0E0007F800>18 28 1 9 21]103 D20 29 1 0 23]104 D<18003C003C0018000000000000000000000000000000FC001C001C001C001C 001C001C001C001C001C001C001C001C001C001C001C001C00FF80>9 29 1 0 12]105 D<00C001E001E000C000000000000000000000000000000FE000E000E000E000E0 00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061 803E00>11 37 -3 8 13]106 D19 29 1 0 22]107 D9 29 1 0 12]108 D33 18 1 0 36]109 D20 18 1 0 23]110 D<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E0 01C0E001C06001807003803003001806000E1C0003F000>18 18 1 0 21]111 D19 26 1 8 23]112 D13 18 1 0 16]114 D<1F9030704030C010C010E010F8007F803FE00FF000 F880388018C018C018E010D0608FC0>13 18 1 0 16]115 D<04000400040004000C000C001C00 3C00FFE01C001C001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C0> 12 26 1 0 16]116 D20 18 1 0 23]117 D19 18 1 0 22]118 D27 18 1 0 30]119 D<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000 F800009C00010E00020E000607000403801E07C0FF0FF8>21 18 0 0 22]120 D19 26 1 8 22]121 D<7FFC70386038407040F040E041C003C0038007000F040E041C043C0C 380870087038FFF8>14 18 1 0 18]122 D E /fe 8 118 df<78FCFCFCFC7800000000000078 FCFCFCFC78>6 18 3 0 13]58 D31 28 2 0 37]68 D<03FC000E0E001C1F003C1F00781F00780E00F800 00F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F800>17 18 2 0 21]99 D<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F 001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0>11 30 1 0 14]105 D24 18 1 0 27]110 D<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800 F07800F03C01E01E03C00F078001FC00>21 18 1 0 24]111 D<1FD830786018E018E018F000FF 807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC0>14 18 2 0 19]115 D24 18 1 0 27]117 D E /ff 19 90 df<3078F87870>5 5 4 0 13]46 D<007E0001C3000301800701C00E00C00E00E01C00E01C 00E03C01E03801E07801E07801E07801E07801E07801E0F003C0F003C0F003C0F003C0F003C0F0 0380F00780E00780E00700E00700E00E00600E00701C003038003870000FC000>19 31 4 1 23]48 D<000C001C00FC0F380038003800380038003800700070007000700070007000 E000E000E000E000E000E001C001C001C001C001C001C0038003C0FFFE>15 30 4 0 23]49 D<007F000183C00201E00400F00700F00F00F00F01F00F01F00001E00001E000 03C0000380000700000E0000F800000E000007000007800007C00003C00007C03007C07807C0F8 07C0F807C0F00780800F00400E00201C0018780007E000>20 31 3 1 23]51 D<0000100000001800000038000000380000007800000078000000FC000001BC0000013C000003 3C0000023C0000063C0000043E0000081E0000081E0000101E0000101E0000201E0000200F0000 400F0000400F0000FFFF0000800F0001000F800100078002000780020007800400078004000780 0C0007C03E0007C0FF807FFC>30 32 2 0 34]65 D<07FFFF00007C01C0003C01E0003C00F000 7800F8007800F8007800F8007800F8007800F8007800F000F001F000F001E000F003C000F00F80 00FFFE0000F00F0001E007C001E003C001E003E001E001E001E001E001E001E003C001E003C003 E003C003E003C003C003C007C003C00F8007800F0007803E00FFFFF000>29 31 2 0 32]66 D<0001F808000E061800380138007000F801E0007803C0007007800030078000 300F0000301F0000301E0000303E0000203C0000007C0000007C0000007C0000007C000000F800 0000F8000000F8000000F8000000F80000007800004078000080780000803C0000803C0001001C 0002000E00020006000C000300100001C0E000003F0000>29 33 5 1 33]67 D<07FFFFF8007C0078003C0038003C001800780018007800080078000800780008007800080078 080800F0100000F0100000F0100000F0300000FFF00000F0700001E0200001E0200001E0200001 E0200001E0000801E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0 078007C0FFFFFF80>29 31 2 0 31]69 D<07FFFFF8007C0078003C0038003C00180078001800 7800080078000800780008007800080078000800F0100000F0100000F0100000F0300000F07000 00FFF00001E0600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003C000 0003C0000003C0000003C000000780000007C00000FFFE0000>29 31 2 0 30]70 D<07FFE0007C00003C00003C0000780000780000780000780000780000780000F00000 F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003 C00003C00003C00003C00007800007C000FFFC00>19 31 1 0 16]73 D<07FFF000007E000000 3C0000003C000000780000007800000078000000780000007800000078000000F0000000F00000 00F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0000001E0008001E001 0003C0010003C0010003C0030003C0020003C0060003C0060007801E0007807C00FFFFFC00>25 31 2 0 28]76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F00000 4E0002F000004E0004F000004E0004F000004E0008F000004E0008F00000870011E00000870011 E00000870021E00000870021E00000870041E00000838041E00001038083C00001038083C00001 038103C00001038203C0000101C203C0000101C403C0000201C40780000201C80780000201C807 80000201D00780000200F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF800> 42 31 2 0 42]77 D<07FC01FFC0003E003E00003E001800003E001800004F001000004F001000 004780100000478010000043C010000043C010000083C020000081E020000081E020000080F020 000080F020000080782000010078400001007C400001003C400001003C400001001E400001001E 400002000F800002000F800002000F800002000780000200078000060003800006000300000F00 010000FFE0010000>34 31 2 0 34]78 D<0003F800001E0E000038070000E0038001C001C003 C001E0078000E00F0000F00F0000F01E0000F01E0000F83E0000F83C0000F87C0000F87C0000F8 7C0000F87C0000F8F80001F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007 C07C0007803C000F003C001E001E001C000E0038000700F00003C3C00000FE0000>29 33 5 1 35]79 D<07FFFF00007C03C0003C01E0003C00F0007800F0007800F8007800F8007800 F8007800F8007800F000F001F000F001E000F003C000F0078000F00F0000FFF80001E0000001E0 000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C0000003 C000000780000007C00000FFFC0000>29 31 2 0 31]80 D<003F040060CC01803C03801C0300 1C0700180600080E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007F E00007E00001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E00380F803 00C60C0081F800>22 33 3 1 25]83 D<3FFFFFF03C0780F03007803060078030400F0010400F 0010C00F0010800F0010800F0010800F0010001E0000001E0000001E0000001E0000001E000000 1E0000003C0000003C0000003C0000003C0000003C0000003C0000007800000078000000780000 00780000007800000078000000F0000001F800007FFFE000>28 31 6 0 33]84 D29 32 7 1 34]85 D32 31 6 0 34]89 D E /fg 24 122 df5 5 6 0 17]46 D<007F000001FFC00007FF F0000FFFF8000FC1F8001F007C003F007E003E003E003C001E007C001F007C001F007C001F0078 000F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80 F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078000F007C001F007C001F007C001F 003E003E003E003E003F007E001F80FC000FC1F8000FFFF80007FFF00001FFC000007F0000>25 41 2 1 30]48 D<00180000380000F80007F800FFF800FFF800F8F80000F80000F80000F80000 F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000 F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000 F8007FFFF07FFFF07FFFF0>20 40 5 0 30]49 D<00FE0003FFC007FFE00FFFF01F03F83C00FC 38007E78003E70003EF0001FF0001F60001F20001F00001F00001F00001F00003E00003E00007C 00007C0000F80001F00001E00003C0000780000F00001E00003C0000780000F00001E00003C000 0780000F00001E00003C00007FFFFF7FFFFF7FFFFF7FFFFF>24 40 2 0 30]50 D<007F000001FFC00007FFF0000FFFF8001FC1F8003E007C003C003E0078003E0038003E 0010003E0000003E0000003E0000003C0000007C000000FC000001F8000007F00000FFE00000FF C00000FFE00000FFF0000001FC0000007C0000003E0000001F0000001F0000000F8000000F8000 000F8000000F8000000F8040000F8060001F00F0001F00F8003F007E007E003F81FC001FFFF800 0FFFF00003FFE000007F0000>25 41 2 1 30]51 D<0001FF00000FFFE0003FFFF8007FFFF800 FE01F801F8003003F0001007C000000F8000001F8000001F0000003E0000003E0000007E000000 7C0000007C0000007C000000F8000000F8000000F8000000F8000000F8000000F8000000F80000 00F8000000F8000000F80000007C0000007C0000007C0000007E0000003E0000003E0000001F00 00001F8000000F80000007C0000003F0000401F8001C00FE00FC007FFFFC003FFFF8000FFFE000 01FF00>30 44 4 1 38]67 D26 42 5 0 34]70 D5 42 6 0 17]73 D31 42 5 0 39]82 D<007FC00001FFF80007FFFE000FFFFF001FC07F003F000F007E0006007C0000 007C000000F8000000F8000000F8000000F8000000F8000000FC0000007E0000007F0000003F80 00001FF800000FFF800007FFE00003FFF80000FFFC00000FFE000000FF0000003F0000001F8000 000F8000000FC0000007C0000007C0000007C0000007C0000007C0000007C000000F8060000F80 F0001F00FC003F00FF80FE007FFFFC001FFFF80007FFE00000FF8000>26 44 3 1 33]83 D<01FE000FFF803FFFC03FFFE03C03F03001F00001F80000F80000F80000F800 00F80000F8007FF807FFF81FFFF83FE0F87F00F8FC00F8F800F8F800F8F800F8FC01F87E07F87F FFF83FFFF81FFCF80FE0F8>21 27 2 0 29]97 D23 42 5 0 31]98 D<007FC001FFF007FFFC0FFFFC1FC07C1F00083E00007C00007C00007C0000F8 0000F80000F80000F80000F80000F80000F800007C00007C00007E00003E00001F000C1FC07C0F FFFC07FFFC01FFF0007F80>22 27 2 0 27]99 D<00003E00003E00003E00003E00003E00003E 00003E00003E00003E00003E00003E00003E00003E00003E00003E00FC3E03FF3E07FFFE0FFFFE 1FC1FE3F007E3E003E7C003E7C003EFC003EF8003EF8003EF8003EF8003EF8003EF8003EF8003E FC003E7C003E7C003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E>23 42 2 0 31]100 D<007E0003FF8007FFC00FFFE01F83F03F00F03E00787C00787C003878003CFF FFFCFFFFFCFFFFFCFFFFFCF80000F80000F800007800007C00007C00003E00003F000C1FC07C0F FFFC07FFFC01FFF0007F80>22 27 2 0 27]101 D5 42 4 0 14]105 D5 42 4 0 14]108 D20 27 5 0 31]110 D<007F000001FFC00007FFF000 0FFFF8001FC1FC003F007E003E003E007C001F007C001F0078000F00F8000F80F8000F80F8000F 80F8000F80F8000F80F8000F80F8000F807C001F007C001F007E003F003E003E003F007E001FC1 FC000FFFF80007FFF00001FFC000007F0000>25 27 2 0 30]111 D13 27 5 0 20]114 D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000F80000F8 0000FC00007F80007FF8003FFE001FFF0007FF8000FFC0000FE00007E00003E00003E04003E0E0 07E0FC0FC0FFFFC07FFF801FFE0003F800>19 27 2 0 23]115 D<07C00007C00007C00007C000 07C00007C00007C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C00007C00007C00007C000 07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C04007E1C0 03FFE003FFE001FF8000FC00>19 34 1 0 22]116 D20 27 5 0 31]117 D25 39 1 12 28]121 D E /fh 9 117 df<0001FF8000000FFFF000003FFFFC00 00FF81FF0001FE007F8003FC003FC007F8001FE00FF8001FF00FF0000FF01FF0000FF81FF0000F F83FF0000FFC3FE00007FC3FE00007FC7FE00007FE7FE00007FE7FE00007FE7FE00007FE7FE000 07FEFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE0 0007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFFE00007FFFF E00007FFFFE00007FFFFE00007FFFFE00007FF7FE00007FE7FE00007FE7FE00007FE7FE00007FE 7FE00007FE3FE00007FC3FF0000FFC3FF0000FFC1FF0000FF81FF0000FF80FF0000FF00FF8001F F007F8001FE003FC003FC001FE007F8000FF81FF00003FFFFC00000FFFF0000001FF8000>40 57 4 1 49]48 D<00001E000000003E00000000FE00000003FE0000003FFE0000FFFFFE0000FF FFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000 000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00 00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE 0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000 0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00007FFFFFFFC0 7FFFFFFFC07FFFFFFFC07FFFFFFFC0>34 56 7 0 49]49 D<0003FF800180001FFFF00380007F FFFC078001FFFFFF0F8003FE00FF9F8007F0000FFF800FE00003FF801FC00001FF803F8000007F 803F8000007F807F0000003F807F0000001F807F0000001F80FF0000000F80FF0000000F80FF00 00000F80FF8000000780FF8000000780FFC000000780FFE000000780FFF8000000007FFE000000 007FFFF00000007FFFFF0000003FFFFFF800003FFFFFFF00001FFFFFFFC0000FFFFFFFF00007FF FFFFF80003FFFFFFFC0001FFFFFFFE00007FFFFFFF00003FFFFFFF800007FFFFFF8000007FFFFF C0000007FFFFC00000003FFFE000000003FFE000000000FFF0000000007FF0000000003FF07000 00001FF0F00000001FF0F00000001FF0F00000000FF0F00000000FF0F80000000FF0F80000000F E0F80000000FE0FC0000000FE0FC0000001FC0FE0000001FC0FF0000001F80FFC000003F80FFF0 00007F00FFFC0001FE00FCFFC007FC00F87FFFFFF800F01FFFFFE000E003FFFF8000C0003FFC00 00>44 61 5 1 55]83 D<0000FFF000000FFFFF00003FFFFF8000FFC01FC001FF003FE003FC00 7FF007FC007FF00FF8007FF01FF0007FF01FF0003FE03FF0003FE03FF0001FC07FE00007007FE0 0000007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF E0000000FFE00000007FE00000007FE00000007FF00000003FF00000003FF00000001FF0000078 1FF80000780FF80000F007FC0000F003FE0001E001FF8007C000FFE01F80003FFFFF00000FFFFC 000000FFC000>37 38 3 0 44]99 D<0001FFC000000FFFF800003FFFFE0000FF80FF0001FE00 3F8007FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83FF00007F87FE00007F87FE0 0003FC7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FF E0000000FFE0000000FFE00000007FE00000007FE00000007FE00000003FE00000003FF000003C 1FF000003C1FF000003C0FF800007807FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF 000007FFFC000000FFE000>38 38 3 0 45]101 D<01F00007FC000FFE000FFE001FFF001FFF00 1FFF001FFF001FFF000FFE000FFE0007FC0001F000000000000000000000000000000000000000 00000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8 FFFFF8FFFFF8FFFFF8>21 61 3 0 27]105 D<00FE007FC000FFFE01FFF800FFFE07FFFC00FFFE 0F03FE00FFFE1C01FF0007FE3001FF8003FE6000FF8003FEE000FFC003FEC000FFC003FF8000FF C003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFF FFFFFFFC3FFFFFFFFFFC3FFFFF>48 38 4 0 55]110 D<0000FFC00000000FFFFC0000003FFFFF 000000FFC0FFC00001FE001FE00007FC000FF80007F80007F8000FF00003FC001FF00003FE003F F00003FF003FE00001FF007FE00001FF807FE00001FF807FE00001FF807FE00001FF80FFE00001 FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FF E00001FFC0FFE00001FFC07FE00001FF807FE00001FF807FE00001FF803FF00003FF003FF00003 FF001FF00003FE000FF80007FC000FF80007FC0007FC000FF80003FE001FF00000FFC0FFC00000 3FFFFF0000000FFFFC00000001FFE00000>42 38 3 0 49]111 D<000780000007800000078000 0007800000078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F80 00007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF800001FF 800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001 FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF803C01FF803C 01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF807800FFC078007FC070003FE0 E0001FFFC00007FF800001FF00>30 55 2 0 38]116 D E /fi 10 58 df<1F00318060C04040 C060C060C060C060C060C060C060C060404060C031801F00>11 16 1 0 15]48 D<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF80>9 16 2 0 15]49 D<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FF C0>11 16 1 0 15]50 D<1F00218060C060C000C0008001800F00008000400060C060C0608040 60801F00>11 16 1 0 15]51 D<0300030007000F000B001300330023004300C300FFE0030003 00030003001FE0>11 16 1 0 15]52 D<20803F002C002000200020002F003080204000600060 0060C06080C061801F00>11 16 1 0 15]53 D<0780184030C060C06000C000CF00F080E040C0 60C060C060406060C030801F00>11 16 1 0 15]54 D<40007FE07FC080808080010002000400 04000C000800080018001800180018001800>11 17 2 0 15]55 D<1F00318060C060C060C071 803F000F00338061C0C060C060C060404060801F00>11 16 1 0 15]56 D<1F00318060C0C040C060C060C06040E021E01E600060004060C0608043003E00>11 16 1 0 15]57 D E /fj 67 125 df<001F83E000F06E3001C078780380F8780300F030070070 00070070000700700007007000070070000700700007007000FFFFFF8007007000070070000700 700007007000070070000700700007007000070070000700700007007000070070000700700007 00700007007000070070000700700007007000070070007FE3FF00>29 32 0 0 27]11 D<003F0000E0C001C0C00381E00701E00701E0070000070000070000070000070000 070000FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0 0700E00700E00700E00700E00700E00700E00700E07FC3FE>23 32 0 0 25]12 D<001F81F80000F04F040001C07C06000380F80F000300F00F000700F00F000700700000 07007000000700700000070070000007007000000700700000FFFFFFFF00070070070007007007 000700700700070070070007007007000700700700070070070007007007000700700700070070 070007007007000700700700070070070007007007000700700700070070070007007007000700 7007007FE3FE3FF0>36 32 0 0 38]14 D<7038F87CFC7EFC7E743A0402040204020804080410 08100820104020>15 14 2 -18 23]34 D<007800000084000001840000030200000702000007 0200000702000007020000070400000704000007080000070800000310000003A00FFC03C003E0 038001C001C0008001C0010003E0010004E0020008F00200187004003078080070380800701C10 00F01E1000F00E2000F0074000F003C0087003C0087801C010380670301C18386007E00F80>30 34 2 1 35]38 D<70F8FCFC74040404080810102040>6 14 4 -18 13]39 D<0020004000800100020006000C000C00180018003000300030007000600060006000E000E000 E000E000E000E000E000E000E000E000E000E0006000600060007000300030003000180018000C 000C00060002000100008000400020>11 46 3 12 18]40 D<800040002000100008000C000600 06000300030001800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000 E000E000E000C000C000C001C001800180018003000300060006000C0008001000200040008000 >11 46 3 12 18]41 D<70F8FCFC74040404080810102040>6 14 4 9 13]44 D10 2 1 -9 15]45 D<70F8F8F870>5 5 4 0 13]46 D<03F0000E1C001C0E001806 00380700700380700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003 C0F003C0F003C0F003C0F003C0F003C07003807003807003807807803807001806001C0E000E1C 0003F000>18 31 2 1 23]48 D<018003800F80F3800380038003800380038003800380038003 8003800380038003800380038003800380038003800380038003800380038007C0FFFE>15 30 4 0 23]49 D<03F0000C1C00100E00200700400780800780F007C0F803C0F803C0F803C020 07C00007C0000780000780000F00000E00001C0000380000700000600000C00001800003000006 00400C00401800401000803FFF807FFF80FFFF80>18 30 2 0 23]50 D<03F0000C1C00100E00 200F00780F80780780780780380F80000F80000F00000F00000E00001C0000380003F000003C00 000E00000F000007800007800007C02007C0F807C0F807C0F807C0F00780400780400F00200E00 1C3C0003F000>18 31 2 1 23]51 D<000600000600000E00000E00001E00002E00002E00004E 00008E00008E00010E00020E00020E00040E00080E00080E00100E00200E00200E00400E00C00E 00FFFFF0000E00000E00000E00000E00000E00000E00000E0000FFE0>20 30 1 0 23]52 D<1803001FFE001FFC001FF8001FE00010000010000010000010000010000010 000011F000161C00180E001007001007800003800003800003C00003C00003C07003C0F003C0F0 03C0E00380400380400700200600100E000C380003E000>18 31 2 1 23]53 D<007C000182000701000E03800C07801C0780380300380000780000700000700000F1F000F21C 00F40600F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C07003803803 803807001807000C0E00061C0001F000>18 31 2 1 23]54 D<4000007FFFC07FFF807FFF8040 010080020080020080040000080000080000100000200000200000400000400000C00000C00001 C00001800003800003800003800003800007800007800007800007800007800007800007800003 0000>18 31 3 1 23]55 D<03F0000C0C00100600300300200180600180600180600180700180 7803003E03003F06001FC8000FF00003F80007FC000C7E00103F00300F806003804001C0C001C0 C000C0C000C0C000C0C000806001802001001002000C0C0003F000>18 31 2 1 23]56 D<03F0000E18001C0C00380600380700700700700380F00380F00380F003C0F003C0 F003C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C0000380000380000380000700 300700780600780E00700C002018001070000FC000>18 31 2 1 23]57 D<70F8F8F8700000000000000000000070F0F8F878080808101010202040>5 29 4 9 13]59 D<000100000003800000038000000380000007C0000007C0000007C0000009E0 000009E0000009E0000010F0000010F0000010F00000207800002078000020780000403C000040 3C0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F00020007800200078002 000780040003C00E0003C01F0007E0FFC03FFE>31 32 1 0 34]65 D26 31 2 0 32]66 D<000FC040007030C001C009C0038005C0070003C00E0001C01E0000C01C0000 C03C0000C07C0000407C00004078000040F8000000F8000000F8000000F8000000F8000000F800 0000F8000000F8000000F8000000780000007C0000407C0000403C0000401C0000401E0000800E 000080070001000380020001C0040000703800000FC000>26 33 3 1 33]67 D29 31 2 0 35]68 D27 31 2 0 31]69 D25 31 2 0 30]70 D<000FE0200078186000E004E0038002E007 0001E00F0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8000000 F8000000F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E03C0001 E03C0001E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820000FE000>30 33 3 1 36]71 D29 31 2 0 34]72 D14 31 1 0 16]73 D37 31 2 0 42]77 D29 31 2 0 34]78 D<001F800000F0F00001C0380007801E000F000F000E0007001E0007803C0003 C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F800 01F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03C0003C01E0007800E 0007000F000F0007801E0001C0380000F0F000001F8000>28 33 3 1 35]79 D25 31 2 0 31]80 D30 32 2 1 33]82 D<07E0800C1980100780300380600180600180E00180E00080E00080E00080F0 0000F000007800007F00003FF0001FFC000FFE0003FF00001F800007800003C00003C00001C080 01C08001C08001C08001C0C00180C00380E00300F00600CE0C0081F800>18 33 3 1 25]83 D<7FFFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F00 10800F0010800F0010000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 0F0000000F0000001F800007FFFE00>28 31 2 0 33]84 D29 32 2 1 34]85 D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C>15 14 5 -18 23]92 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E00 1E0E00380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C0>20 20 2 0 23]97 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E3E000EC3800F01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E 00780E00780E00700E00700E00E00F00E00D01C00CC300083E00>21 32 1 0 25]98 D<03F80E0C1C1E381E380C70007000F000F000F000F000F000F00070007000380138 011C020E0C03F0>16 20 2 0 20]99 D<000380003F8000038000038000038000038000038000 038000038000038000038000038003E380061B801C0780380380380380700380700380F00380F0 0380F00380F00380F00380F003807003807003803803803807801C07800E1B8003E3F8>21 32 2 0 25]100 D<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF80F0 0000F00000F000007000007000003800801800800C010007060001F800>17 20 1 0 20]101 D<007C00C6018F038F07060700070007000700070007000700FFF00700070007 000700070007000700070007000700070007000700070007000700070007007FF0>16 32 0 0 14]102 D<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F0038 0E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFFC03001E0600070C0 0030C00030C00030C000306000603000C01C038003FC00>20 31 1 10 23]103 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E 000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 32 1 0 25]104 D<1C003E003E003E001C00 0000000000000000000000000E007E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E00FFC0>10 31 0 0 12]105 D<00E001F001F001F000E0000000000000 000000000000007007F000F0007000700070007000700070007000700070007000700070007000 7000700070007000700070007000706070F060F0C061803F00>12 40 -2 9 14]106 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C00 0E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF8>21 32 1 0 24]107 D<0E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0>11 32 0 0 12]108 D<0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E 00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00 0E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE0>35 20 1 0 38]109 D<0E3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 20 1 0 25]110 D<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F0 00F0F000F0F000F07000E07000E03801C03801C01C0380070E0001F800>20 20 1 0 23]111 D<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00780E00780E 00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E00000E 00000E00000E00000E00000E0000FFE000>21 29 1 9 25]112 D<03E0800619801C05803C0780 380380780380700380F00380F00380F00380F00380F00380F00380700380780380380380380780 1C0B800E138003E380000380000380000380000380000380000380000380000380003FF8>21 29 2 9 24]113 D<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E 000E000E000E00FFE0>15 20 1 0 18]114 D<1F9030704030C010C010C010E00078007F803FE0 0FF00070803880188018C018C018E030D0608F80>13 20 2 0 18]115 D<020002000200060006 000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E08 0E080610031001E0>13 28 1 0 18]116 D<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC >22 20 1 0 25]117 D21 20 1 0 24]118 D30 20 1 0 33]119 D<7FC3FC0F01E00701C007018003810001C20000 E40000EC00007800003800003C00007C00004E000087000107000303800201C00601E01E01E0FF 07FE>23 20 0 0 24]120 D21 29 1 9 24]121 D<3FFF380E200E201C40384078407000E001E001C00380078007010E011E011C0338027006700E FFFE>16 20 1 0 20]122 D44 1 0 -12 45]124 D E /fk 1 64 df<07F8001FFE00381F80780F80FC0FC0FC0FC0FC0FC0780FC0301F80001F00003E00 007C0000700000E00000E00000C00000C00000C00000C00000C00000C000000000000000000000 00000001C00003E00007F00007F00007F00003E00001C000>18 32 3 0 25]63 D E /fl 14 118 df39 71 3 0 45]73 D<00007FF00007000007FFFF000F 00001FFFFFC01F00007FFFFFF03F0000FFFFFFFC7F0003FFC00FFEFF0007FE0000FFFF0007FC00 003FFF000FF000001FFF001FF0000007FF001FE0000003FF003FE0000001FF003FC0000001FF00 7FC0000000FF007FC00000007F007FC00000007F00FFC00000003F00FFC00000003F00FFC00000 003F00FFE00000003F00FFE00000001F00FFF00000001F00FFF80000001F00FFFC0000001F00FF FF00000000007FFFC0000000007FFFFE000000007FFFFFE00000003FFFFFFF0000003FFFFFFFF0 00001FFFFFFFFC00001FFFFFFFFF00000FFFFFFFFFC00007FFFFFFFFE00007FFFFFFFFF00003FF FFFFFFF80000FFFFFFFFFC00007FFFFFFFFE00003FFFFFFFFE00000FFFFFFFFF000001FFFFFFFF 0000003FFFFFFF80000001FFFFFF800000000FFFFFC000000000FFFFC0000000001FFFC0000000 000FFFE00000000007FFE00000000003FFE07800000001FFE0F800000000FFE0F800000000FFE0 F8000000007FE0F8000000007FE0F8000000007FE0FC000000007FE0FC000000007FC0FC000000 007FC0FE000000007FC0FE000000007F80FF00000000FF80FF80000000FF80FFC0000000FF00FF E0000001FE00FFF8000003FE00FFFE000007FC00FFFF80000FF800FFFFFC007FF000FE3FFFFFFF E000FC0FFFFFFF8000F803FFFFFF0000F0007FFFF80000E00003FFC00000>51 73 7 1 66]83 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE00 1FFF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007FF800 0FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC0000000000 3FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC000000FFFFFFFC0000 07FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC0003FFC000FFF00003F FC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003FFC00FFF000003FFC00FFF0 00003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000007FFC007FF80000FFFC 007FF80001EFFC003FFC0003EFFC003FFF0007CFFF000FFFC03F8FFFF807FFFFFF07FFFC01FFFF FC03FFFC007FFFF001FFFC0003FF80007FF8>54 46 3 0 58]97 D<007FC00000000000FFFFC0 0000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000000003FF C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001 FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000000000 01FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000 0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000 000001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FFDFF00F FF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007FF00001FFE000 003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FFE000001FFE0001FFE0 00000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF8001FF E000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001 FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF00 01FFE000000FFF0001FFE000000FFF0001FFE000001FFE0001FFE000001FFE0001FFE000001FFC 0001FFE000001FFC0001FFE000003FF80001FFF000003FF80001FFF800007FF00001FFFC0000FF E00001FFFE0001FFC00001FFBF0007FF800001FF1FE01FFE000001FE0FFFFFFC000001FC03FFFF F0000001F800FFFF80000001F0001FF8000000>57 72 4 0 66]98 D<00001FFE00000001FFFF E0000007FFFFF800001FFFFFFE00007FFC07FF0000FFE001FF8001FFC0007FC003FF80003FE007 FF00003FF00FFE00001FF01FFE00000FF81FFC00000FF83FFC00000FFC3FFC000007FC7FFC0000 07FC7FF8000007FC7FF8000007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFF FFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF80000 00007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000003FFC0000001C1F FE0000003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003F0007FF000 1FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF8000>47 46 3 0 54]101 D<00FC0001FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01F FFE00FFFC007FF8003FF0001FE0000FC0000000000000000000000000000000000000000000000 0000000000000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001 FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001 FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001 FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>24 73 4 0 32]105 D<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80>25 72 4 0 32]108 D<007FC001FFC00000FFE00000FFFFC00FFFF80007FFFC0000FFFFC03FFFFE001FFFFF0000FFFF C0FFFFFF007FFFFF8000FFFFC1FC07FF80FE03FFC000FFFFC3E003FFC1F001FFE00003FFC7C001 FFC3E000FFE00001FFCF0001FFE78000FFF00001FFDE0000FFEF00007FF00001FFDC0000FFEE00 007FF00001FFFC0000FFFE00007FF80001FFF80000FFFC00007FF80001FFF00000FFF800007FF8 0001FFF00000FFF800007FF80001FFF00000FFF800007FF80001FFE00000FFF000007FF80001FF E00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000 FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000 007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FF E00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000 FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000 007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF800FFFFFFC07FFFFFE03FFFFFF0FFFF FFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07F FFFFE03FFFFFF0>92 46 4 0 99]109 D<007FC001FFC00000FFFFC00FFFF80000FFFFC03FFFFE 0000FFFFC0FFFFFF0000FFFFC1FC07FF8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001 FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF000 00FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000 01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFF FFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0>59 46 4 0 66]110 D<00000FFF0000000000FFFFF000000007FFFFFE0000001FFFFFFF8000003FFC 03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE000007FE000FFE000007FF00 0FFC000003FF001FFC000003FF803FFC000003FFC03FF8000001FFC03FF8000001FFC07FF80000 01FFE07FF8000001FFE07FF8000001FFE0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FF F8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001 FFF0FFF8000001FFF07FF8000001FFE07FF8000001FFE07FF8000001FFE07FF8000001FFE03FFC 000003FFC03FFC000003FFC01FFC000003FF801FFE000007FF800FFE000007FF0007FF00000FFE 0003FF80001FFC0001FFC0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF80000007FF FFFE00000000FFFFF0000000000FFF000000>52 46 3 0 59]111 D<007FC00FFC000000FFFFC0 7FFFC00000FFFFC3FFFFF00000FFFFCFFFFFFC0000FFFFDFF01FFF0000FFFFFF8007FF800003FF FE0001FFC00001FFF80000FFE00001FFF00000FFF00001FFE000007FF80001FFE000003FFC0001 FFE000003FFC0001FFE000003FFE0001FFE000001FFE0001FFE000001FFF0001FFE000001FFF00 01FFE000001FFF0001FFE000000FFF0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF 8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F FF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF0001FFE000001FFF0001FFE00000 1FFF0001FFE000001FFE0001FFE000001FFE0001FFE000003FFC0001FFE000003FFC0001FFE000 007FF80001FFF000007FF80001FFF80000FFF00001FFFC0001FFE00001FFFE0003FFC00001FFFF 0007FF800001FFFFE03FFE000001FFEFFFFFFC000001FFE3FFFFF0000001FFE0FFFF80000001FF E01FF800000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001 FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000 01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000000000 0001FFE00000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC00000 0000FFFFFFC000000000>57 66 4 20 66]112 D<000FFF00E0007FFFF3E001FFFFFFE007FFFF FFE00FF800FFE01FC0001FE03F80000FE03F000007E07F000003E07F000003E0FF000003E0FF00 0003E0FF800003E0FFC0000000FFF0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003F FFFFFC001FFFFFFF000FFFFFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF8 00001FFFF8000000FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC000003FCFC000003 FCFE000003F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFF FF80FC7FFFFE00F81FFFF800E003FF8000>38 46 4 0 47]115 D<0001F000000001F000000001 F000000001F000000001F000000001F000000003F000000003F000000003F000000007F0000000 07F000000007F00000000FF00000000FF00000001FF00000003FF00000003FF00000007FF00000 01FFF0000003FFF000000FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF000 0000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0 000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF001F000 FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F0 007FF001E0007FF803E0003FF803E0003FFC07C0001FFE0F80000FFFFF800007FFFE000001FFFC 0000001FF000>36 66 2 0 46]116 D<007FE000003FF000FFFFE0007FFFF000FFFFE0007FFFF0 00FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF00003FFE00001FFF00001FFE00000FF F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000 FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE000 00FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00001FFF00001FFE00001FFF00001FFE00001FFF00001FFE00003FFF000 00FFE00007FFF00000FFE0000F7FF000007FE0001F7FF000007FF0003E7FF800003FFC00FC7FFF E0001FFFFFF87FFFE00007FFFFE07FFFE00001FFFF807FFFE000003FFE007FFFE0>59 46 4 0 66]117 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300 %%Feature: *ManualFeed False TeXDict begin @letter %%EndSetup %%Page: 115 1 bop 75 369 a fh(Section)35 b(10)75 590 y fl(Initial)43 b(Implemen)m(tation)f (Subset)75 844 y fg(10.1)59 b(Intro)r(duction)75 971 y fj(This)17 b(c)o(hapter)f(de\014nes)h(the)g(minimal)h(subset)e(of)g(MPI)g(for)g(initial) i(implemen)o(tation.)25 b(This)17 b(subset)f(is)75 1027 y(b)q(eing)c (de\014ned)h(so)d(that)g(consisten)o(t)i(implemen)o(tations)g(can)f(app)q (ear)g(more)g(rapidly)l(.)20 b(It)11 b(w)o(as)f(recognized)75 1084 y(early)17 b(in)h(the)f(pro)q(cess)g(that)f(MPI)h(needed)h(to)e(app)q (ear)h(as)f(quic)o(kly)i(as)f(p)q(ossible)h(and)f(practical.)26 b(The)75 1140 y(creation)16 b(of)f(a)g(subset)h(will)h(hop)q(efully)g(allo)o (w)f(users)g(earlier)g(access)g(to)e(the)i(standard)f(and)h(still)h(allo)o(w) 75 1197 y(for)e(the)g(writing)h(of)e(p)q(ortable)i(message)f(passing)g(co)q (des.)166 1266 y(This)20 b(subset)g(should)h(not)e(in)i(an)o(y)e(w)o(a)o(y)g (b)q(e)h(construed)g(as)f(a)h(limitation)h(on)e(MPI)h(implemen-)75 1323 y(tations.)35 b(It)20 b(is)h(strictly)g(the)g(minim)o(um)g(necessary)g (to)e(ha)o(v)o(e)h(an)h(initial)h(MPI)e(subset)h(conforming)75 1379 y(implemen)o(tation.)28 b(It)18 b(is)g(hop)q(ed)g(that)f(an)g (o\016cially)i(sanctioned)g(subset)e(will)i(encourage)f(and)g(allo)o(w)75 1435 y(implemen)o(tors)c(to)e(in)o(tro)q(duce)j(MPI)e(in)h(a)e(more)h(timely) h(fashion.)20 b(It)13 b(should)h(b)q(e)g(noted,)f(ho)o(w)o(ev)o(er,)g(that)75 1492 y(implemen)o(tation)20 b(of)e(the)h(subset)g(do)q(es)g(not)f(mak)o(e)h (an)f(implemen)o(tation)i(conform)e(with)h(MPI.)g(The)75 1548 y(subset)g(is)g(only)h(a)e(p)q(oten)o(tial)i(\014rst)e(step)h(in)h(the)f(pro) q(cess.)31 b(All)20 b(implemen)o(tations)g(m)o(ust)f(ultimately)75 1605 y(conform)14 b(to)h(the)g(en)o(tire)g(standard;)g(implemen)o(tations)h (are)f(encouraged)g(to)f(do)h(the)g(full)i(standard)d(as)75 1661 y(rapidly)i(as)f(p)q(ossible.)166 1731 y(The)c(subset)g(presen)o(ted)g (is)g(consisten)o(t)f(with)h(the)g(complete)g(MPI)g(standard.)18 b(This)11 b(w)o(as)f(an)g(imp)q(or-)75 1787 y(tan)o(t)i(goal)g(so)h(the)g (additional)h(MPI)f(features)f(could)i(b)q(e)g(added)f(without)g(c)o(hanging) g(an)o(y)g(functionalit)o(y)75 1844 y(from)19 b(the)i(user's)f(p)q(ersp)q (ectiv)o(e.)36 b(Th)o(us,)21 b(users)f(can)g(b)q(e)h(assured)f(that)g (programs)f(written)h(no)o(w)g(for)75 1900 y(the)c(subset)f(will)i(run)f (without)g(mo)q(di\014cation)g(under)g(the)g(full)h(MPI)e(standard.)21 b(F)l(urthermore,)14 b(using)75 1957 y(additional)j(features)f(of)g(the)g (full)h(MPI)f(standard)f(in)i(the)f(future)g(will)i(not)d(require)i(c)o (hanges)f(to)f(co)q(de)75 2013 y(already)20 b(written.)35 b(This)20 b(requires)h(that)f(the)g(MPI)g(functions)g(ha)o(v)o(e)g(their)h(full)g (calling)h(argumen)o(ts)75 2070 y(in)f(the)g(subset.)36 b(T)l(o)20 b(ac)o(hiev)o(e)h(this)g(goal,)g(the)f(subset)h(will)h(limit)g(access)f(to)e (full)j(MPI)f(functional-)75 2126 y(it)o(y)e(through)h(complete)g (elimination)i(of)d(functions)h(or)f(limitations)i(on)e(the)h(creation)f(mec) o(hanisms)75 2182 y(for)d(certain)i(MPI)f(input)h(argumen)o(ts.)24 b(An)o(y)17 b(argumen)o(t)g(capable)h(of)e(b)q(eing)i(constructed)g(within)g (the)75 2239 y(subset)f(can)g(b)q(e)h(used)f(as)g(an)g(argumen)o(t)f(to)g(a)h (subset)g(function)h(where)f(it)g(w)o(ould)g(b)q(e)h(allo)o(w)o(ed)f(in)h (the)75 2295 y(full)h(standard.)28 b(F)l(or)17 b(example,)i(an)o(y)f(group)f (that)g(can)h(b)q(e)h(created)f(with)g(the)g(subset)g(is)h(an)f(allo)o(w)o (ed)75 2352 y(argumen)o(t)12 b(in)i(an)o(y)e(subset)i(function)f(where)g(a)g (group)g(is)g(an)g(appropriate)g(argumen)o(t.)18 b(Ho)o(w)o(ev)o(er,)12 b(some)75 2408 y(of)j(the)g(more)g(complex)h(mec)o(hanisms)g(for)e(group)h (creation)g(ha)o(v)o(e)g(b)q(een)i(remo)o(v)o(ed)d(from)h(the)g(subset.)166 2478 y(Users)g(ma)o(y)g(use)g(MPI)h(features)e(outside)i(this)g(subset)g (that)e(are)h(o\013ered)g(b)o(y)g(v)m(arious)h(implemen-)75 2534 y(tors.)27 b(Ho)o(w)o(ev)o(er,)18 b(p)q(eople)h(who)f(require)h(p)q (ortabilit)o(y)f(during)h(the)f(early)h(dev)o(elopmen)o(t)f(of)g(MPI)g(ma)o (y)75 2591 y(exp)q(erience)j(some)d(di\016culties)j(un)o(til)f(later)f(in)h (the)f(dev)o(elopmen)o(t)g(pro)q(cess.)31 b(This)19 b(subset)g(is)h(mean)o(t) 75 2647 y(to)g(o\013er)g(the)g(opp)q(ortunit)o(y)h(for)f(a)g(greater)f(lev)o (el)j(of)e(p)q(ortabilit)o(y)i(un)o(til)f(the)g(full)h(MPI)e(standard)g(is)75 2704 y(implemen)o(ted)d(on)e(m)o(ultiple)i(platforms.)-32 46 y fi(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 116 2 bop 75 -100 a fj(116)592 b ff(SECTION)16 b(10.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)166 45 y fe(Discussion:)166 96 y fd(A)o(t)h(the)h(June)g(meeting)e(w)o(e)i(decided)g(to)f(try)g(and)h (mak)o(e)d(a)i(single)g(subset.)29 b(It)18 b(w)o(as)f(felt)g(that)g(ha)o (ving)f(a)75 146 y(m)o(ultilev)o(el)d(subset)18 b(w)o(ould)d(b)q(e)h(more)f (complex)g(and)h(p)q(oten)o(tially)e(confusing.)24 b(Th)o(us,)17 b(an)e(item)g(is)h(either)h(in)e(or)75 196 y(out)f(of)f(the)i(subset.)k(This) 14 b(will)e(only)h(b)q(e)i(reconsidered)h(if)d(this)h(binary)f(c)o(hoice)i(b) q(ecomes)f(a)f(serious)i(problem.)75 427 y fg(10.2)59 b(Criteria)20 b(and)g(Rational)75 531 y fj(Ha)o(ving)f(the)g(subset)g(b)q(e)h(consisten)o (t)f(with)g(the)g(en)o(tire)g(MPI)g(standard)g(w)o(as)f(considered)i (critical)h(to)75 587 y(the)16 b(e\013ort.)22 b(In)16 b(addition)i(to)d (this,)h(there)h(w)o(ere)e(man)o(y)h(p)q(ossible)i(criteria)f(to)e(use)h(in)h (determining)h(the)75 644 y(elemen)o(ts)d(of)e(MPI)h(to)f(include)j(in)f(the) f(subset.)20 b(The)14 b(main)g(criteria)h(used)f(w)o(ere)g(that)f(the)h(MPI)g (subset)75 700 y(should)131 798 y(1.)22 b(con)o(tain)13 b(routines)h(that)e (are)h(as)g(close)h(as)f(p)q(ossible)i(to)e(curren)o(t)g(standard)g(practice) h(to)f(minimize)189 854 y(the)i(e\013ort)f(to)h(p)q(ort)f(co)q(des.)131 952 y(2.)22 b(con)o(tain)15 b(as)g(man)o(y)g(new)g(and)g(imp)q(ortan)o(t)g (MPI)g(features)g(as)g(p)q(ossible.)131 1050 y(3.)22 b(allo)o(w)17 b(dev)o(elop)q(ers)i(to)e(b)q(e)i(able)f(to)f(ha)o(v)o(e)g(the)h(subset)g (sho)o(w)f(up)h(as)f(rapidly)i(as)e(p)q(ossible)i(while)189 1106 y(still)d(meeting)g(the)f(other)g(criteria.)166 1204 y(There)i(w)o(ere)g (man)o(y)f(rationales)h(for)g(these)g(criteria.)26 b(It)17 b(w)o(as)f(recognized)i(that)e(it)h(is)h(imp)q(ossible)75 1261 y(to)h(come)h(up)g(with)g(an)g(ideal)h(subset)f(and)g(compromises)g(w)o(ere)g (necessary)l(.)34 b(It)19 b(w)o(as)g(felt)i(that)e(cur-)75 1317 y(ren)o(t)h(users)g(should)i(b)q(e)f(comfortable)f(in)h(migrating)f(to)g (MPI.)g(Th)o(us,)h(the)g(subset)f(should)i(con)o(tain)75 1374 y(the)17 b(message)f(passing)h(elemen)o(ts)g(that)f(represen)o(t)g(common)g (practice)i(to)q(da)o(y)l(.)23 b(F)l(urthermore,)16 b(it)h(w)o(as)75 1430 y(felt)f(that)g(the)g(initial)i(\(and)e(later\))g(v)o(ersion)g(of)g(MPI) g(should)h(main)o(tain)g(e\016ciency)l(.)24 b(Otherwise)17 b(users)75 1486 y(could)k(su\013er)e(from)g(disenc)o(han)o(tmen)o(t)h(with)g (MPI)f(on)h(their)g(\014rst)f(usage)h(and)f(ma)o(y)g(nev)o(er)h(giv)o(e)g (the)75 1543 y(standard)e(a)h(second)g(try)l(.)29 b(Ha)o(ving)19 b(the)g(standard)f(routines)h(in)h(the)e(subset)h(should)h(encourage)e(de-)75 1599 y(v)o(elop)q(ers)g(to)f(optimized)i(these)f(routines)g(in)h(the)f (initial)h(v)o(ersion)f(of)f(MPI.)h(Also,)g(though)f(some)h(felt)75 1656 y(that)c(the)g(p)q(ortabilit)o(y)h(o\013ered)f(b)o(y)g(the)h(MPI)f (subset)h(w)o(as)e(su\016cien)o(t)i(to)f(en)o(tice)h(users,)f(man)o(y)g(felt) h(that)75 1712 y(the)20 b(subset)g(should)g(con)o(tain)g(some)f(new)h (feature\(s\))f(o)o(v)o(er)g(and)g(ab)q(o)o(v)o(e)h(curren)o(t)f(common)g (practice)75 1769 y(as)d(an)g(added)h(incen)o(tiv)o(e.)24 b(The)17 b(additional)h(items)e(selected)i(w)o(ere)e(mean)o(t)f(to)h(represen)o(t)g (some)g(of)g(the)75 1825 y(signi\014can)o(t)i(new)f(features)f(of)h(MPI.)f (Balanced)i(against)f(these)g(\014rst)f(t)o(w)o(o)g(goals)h(is)g(the)g(need)h (for)e(the)75 1882 y(subset)e(to)f(sho)o(w)g(up)i(in)f(a)g(timely)h(fashion.) k(Th)o(us,)14 b(eac)o(h)g(feature)g(c)o(hosen)g(for)f(inclusion)j(in)f(the)f (subset)75 1938 y(w)o(as)g(deemed)h(of)f(su\016cien)o(t)h(imp)q(ortance)g(to) f(out)o(w)o(eigh)g(its)h(added)g(complexit)o(y)g(in)h(implemen)o(ting)g(the) 75 1995 y(subset.)k(Though)14 b(some)h(functions)g(seem)g(easy)f(to)g (implemen)o(t)i(there)e(are)h(often)f(o)o(v)o(erlo)q(ok)o(ed)g(costs)g(in)75 2051 y(testing,)f(do)q(cumen)o(tation)h(and)g(dev)o(elopmen)o(t)g(that)e(w)o (as)h(considered)h(b)q(efore)g(a)f(feature)g(w)o(as)g(added)h(to)75 2107 y(the)j(MPI)g(subset.)25 b(Inclusion)20 b(of)c(to)q(o)g(man)o(y)h (routines)g(migh)o(t)g(lead)h(to)e(mo)q(derately)i(e\016cien)o(t)f(imple-)75 2164 y(men)o(tation)g(of)f(them)h(all)h(instead)f(of)g(a)f(v)o(ery)h (e\016cien)o(t)h(and)f(p)q(ossibly)h(more)f(useful)h(implemen)o(tation)75 2220 y(of)d(a)g(smaller)h(subset.)166 2354 y fe(Discussion:)166 2405 y fd(Should)g(it)g(b)q(e)i(a)e(criteria)h(that)g(the)g(rest)h(of)e(MPI)h (b)q(e)g(able)g(to)f(b)q(e)h(la)o(y)o(ered)g(on)g(top)f(so)h(users)h(migh)o (t)d(get)75 2455 y(early)f(\(though)h(lo)o(w)o(er)f(p)q(erformance\))h (access)h(to)e(the)i(complete)e(standard?)20 b(This)15 b(is)f(aimed)f(at)h (allo)o(wing)f(easy)75 2504 y(and)g(e\016cien)o(t)g(la)o(y)o(ering)f(of)h (the)h(rest)g(so)f(that)g(a)g(\\mac)o(hine)e(indep)q(enden)o(t")j(pac)o(k)n (age)f(could)g(b)q(e)h(created)g(without)75 2554 y(ha)o(ving)e(the)i(dev)o (elop)q(er)g(jump)e(through)h(lots)g(of)g(hops.)18 b(This)13 b(migh)o(t)f(happ)q(en)h(if)g(a)g(few)g(functions)h(w)o(ere)g(left)f(out)75 2604 y(that)g(didn't)f(meet)g(the)i(other)f(criteria.)18 b(Ho)o(w)o(ev)o(er,) 13 b(some)f(felt)h(it)f(w)o(as)h(not)f(a)h(strong)g(enough)g(reason)g(to)g (lea)o(v)o(e)f(it)75 2654 y(in)h(and)g(m)o(y)f(lead)h(to)g(p)q(o)q(or)h(MPI)f (implemen)o(tations)e(of)h(these)j(la)o(y)o(ered)f(routines.)k(A)o(t)13 b(the)h(June)h(meeting)d(it)h(w)o(as)75 2704 y(decided)i(that)f(unless)h (this)e(turns)i(out)f(to)g(b)q(e)g(imp)q(ortan)o(t,)e(it)h(will)g(not)h(b)q (e)g(added)g(to)g(the)h(text.)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 117 3 bop 75 -100 a ff(10.3.)34 b(SUBSET)15 b(FUNCTIONALITY)1014 b fj(117)75 45 y fg(10.3)59 b(Subset)19 b(F)n(unctionalit)n(y)75 226 y fe(Discussion:)166 278 y fd(Most)12 b(of)f(the)h(material)d(in)j(this)f (section)h(is)g(either)g(substan)o(tially)f(rew)o(ork)o(ed)h(or)g(new.)17 b(It)12 b(hop)q(efully)f(re\015ects)75 328 y(the)h(c)o(hanges)g(made)d(in)i (man)o(y)e(of)i(the)g(c)o(hapters)i(since)f(the)g(June)g(meeting.)k(As)11 b(suc)o(h,)h(it)f(has)g(not)g(b)q(een)h(discussed)75 378 y(b)o(y)i(the)h(MPI) f(group)g(and)g(still)g(needs)h(p)q(olishing.)j(I)c(w)o(ould)g(lik)o(e)f(to)h (agree)h(to)f(the)h(concepts)h(at)e(this)g(p)q(oin)o(t)g(and)75 428 y(then)g(p)q(olish)f(up)h(the)g(presen)o(tation.)19 b(Appropriate)14 b(text)g(will)e(b)q(e)i(added)g(after)g(w)o(e)g(agree)g(to)g(what)f(is)h (in/out)f(of)75 477 y(the)h(subset.)75 693 y fb(10.3.1)49 b(P)o(oint)17 b(to)f(P)o(oint)h(F)o(unctionalit)o(y)75 782 y fj(The)j(table)h(b)q(elo)o(w)g (con)o(tains)f(a)g(summary)f(b)o(y)h(section)h(of)f(whic)o(h)h(features)e(of) h(the)g(p)q(oin)o(t)h(to)e(p)q(oin)o(t)75 839 y(comm)o(unications)d(c)o (hapter)f(are)g(included)j(and)d(excluded)i(from)e(the)g(subset.)120 955 y(Section)62 b(Title)400 b(Included)414 b(Excluded)75 978 y 1802 2 v 120 1030 a(3.2)146 b(Basic)16 b(Send)g(Op)q(eration)63 b fa(MPI)s 14 2 v 13 w(SEND)367 b fj(||)120 1099 y(3.2.1)110 b(Message)15 b(Data)217 b(All)17 b(t)o(yp)q(es)402 b(||)120 1168 y(3.3)146 b(Basic)16 b(Recv)g(Op)q(eration)61 b fa(MPI)s 14 2 v 13 w(RECV)369 b fj(||)120 1237 y(3.3.1)110 b(Return)16 b(Status)213 b fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(SOURCE)205 b fj(||)820 1293 y fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(T)l(A)o(G)820 1350 y(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(COUNT)120 1418 y fj(3.6)146 b(Data)14 b(Con)o(v)o(ersion)163 b(||)492 b(\\All")120 1487 y(3.7)146 b(Comm.)19 b(Mo)q(des)202 b(Standard)400 b fa(MPI)s 14 2 v 13 w(RSEND)1402 1544 y(MPI)s 14 2 v 13 w(SSEND)120 1613 y fk(??)155 b fj(Comm.)19 b(Initiation)147 b fa(MPI)s 14 2 v 13 w(ISEND)354 b(MPI)s 14 2 v 13 w(IRSEND)820 1669 y(MPI)s 14 2 v 13 w(IRECV)i(MPI)s 14 2 v 13 w(ISSEND)120 1738 y fj(3.8.3)110 b(Comm.)19 b(Completion)102 b fa(MPI)s 14 2 v 13 w(W)l(AIT)371 b fj(||)820 1794 y fa(MPI)s 14 2 v 13 w(TEST)120 1863 y fj(3.8.3)110 b(Multiple)17 b(Completion)83 b(||)492 b fa(MPI)s 14 2 v 13 w(W)l(AIT)l(ANY)1402 1920 y(MPI)s 14 2 v 13 w(TEST)l(ANY)1402 1976 y(MPI)s 14 2 v 13 w(W)l(AIT)l(ALL)1402 2033 y(MPI)s 14 2 v 13 w(TEST)l(ALL)120 2102 y fj(3.9)146 b(Prob)q(e)15 b(&)h(Cancel)178 b fa(MPI)s 14 2 v 13 w(PROBE)336 b(MPI)s 14 2 v 13 w(CANCEL)820 2158 y(MPI)s 14 2 v 13 w(IPROBE)323 b(MPI)s 14 2 v 13 w(TEST)s 14 2 v 14 w(CANCEL)820 2215 y(MPI)s 14 2 v 13 w(PROBE)s 14 2 v 15 w(COUNT)120 2283 y fk(??)155 b fj(P)o(ersisten)o(t)15 b(Comm.)139 b(||)492 b fa(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(SEND)355 2340 y fj(Ob)s(jects)894 b fa(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(RSEND)1402 2396 y(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(SSEND)1402 2453 y(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(RECV)1402 2509 y(MPI)s 14 2 v 13 w(ST)l(ART)1402 2566 y(MPI)s 14 2 v 13 w(FREE)120 2635 y fj(3.11)123 b(Send-receiv)o(e)252 b fa(MPI)s 14 2 v 13 w(SENDRECV)g(MPI)s 14 2 v 13 w(EX)o(CHANGE)120 2704 y fj(3.12)123 b(Null)17 b(pro)q(cess)252 b fc(MPI)r 13 2 v 13 w(PROCNULL)278 b fj(||)-32 46 y fi(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 118 4 bop 75 -100 a fj(118)592 b ff(SECTION)16 b(10.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)120 45 y fj(3.13.1)87 b(Deriv)o(ed)16 b(Datat)o(yp)q(es)122 b fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(CONTIGUOUS)820 102 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(VECTOR)171 b(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(HVECTOR)820 158 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(INDEXED)155 b(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(HINDEXED)1402 214 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(STRUCT)120 283 y fk(??)g fj(Additional)286 b fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(COMMIT)164 b(MPI)s 14 2 v 13 w(ADDRESS)355 340 y fj(F)l(unctions)273 b fa(MPI)s 14 2 v 13 w(FREE)375 b(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(EXTEND)166 499 y fj(In)14 b(addition)g(to)e(these)i(sp)q(eci\014c)h(functions,)f(all)g (the)f(features)g(and)g(criteria)h(of)e(the)h(p)q(oin)o(t)h(to)e(p)q(oin)o(t) 75 556 y(comm)o(unications)18 b(hold)h(for)e(the)h(subset.)27 b(Th)o(us,)18 b(the)g(message)f(en)o(v)o(elop)q(e)i(in)g(subsection)g(3.2.2,) d(the)75 612 y(seman)o(tics)h(in)h(section)f(3.4,)f(the)h(t)o(yp)q(e)g(matc)o (hing)g(in)h(section)f(3.5)f(and)h(the)g(comm)o(unication)h(ob)s(jects)75 669 y(in)e(subsection)g(3.8.1)e(are)h(all)h(part)e(of)h(the)g(subset.)166 802 y fe(Discussion:)166 854 y fd(A)o(t)f(the)g(June)h(meeting)e(w)o(e)h(v)o (oted)g(to)g(remo)o(v)o(e)f(the)h(m)o(ultiple)e(completion)g(tests)j(from)d (the)j(subset)166 1070 y fe(Discussion:)166 1121 y fd(A)o(t)d(the)g(June)h (meeting)e(w)o(e)h(v)o(oted)g(to)g(remo)o(v)o(e)f(INIT,)g(ST)m(AR)m(T,)f (etc.)18 b(This)12 b(is)g(carried)g(o)o(v)o(er)g(in)g(the)g(remo)o(v)n(al)75 1171 y(of)h(the)i(p)q(ersisten)o(t)g(comm)o(unication)c(ob)r(jects.)166 1388 y fe(Discussion:)166 1439 y fd(send-recv)17 b(is)e(new.)21 b(It)15 b(is)g(used)h(in)f(sev)o(eral)g(systems)g(no)o(w)g(and)g(is)g (somewhat)f(common)e(practice.)22 b(Users)75 1489 y(co)q(ding)13 b(this)h(often)g(mak)o(e)e(a)i(mistak)o(e.)i(The)f(pro)q(cn)o(ull)e(seems)h (easy)g(and)g(of)f(great)h(use)h(if)e(w)o(e)h(ha)o(v)o(e)f(send-recv.)20 b(I)75 1539 y(left)14 b(these)h(in)e(the)i(subset.)k(commen)o(ts?)166 1755 y fe(Discussion:)166 1806 y fd(Deriv)o(ed)d(datat)o(yp)q(es)h(are)f (new.)25 b(W)m(e)15 b(previously)h(v)o(oted)g(to)g(allo)o(w)e(the)j(con)o (tiguous)f(bu\013er)h(v)o(ersions)f(and)75 1856 y(limit)11 b(bu\013er)k(op)q(erations)f(to)g(only)f(one)h(app)q(end.)k(The)d(curren)o(t) g(draft)f(do)q(es)g(not)g(ha)o(v)o(e)g(these)h(t)o(w)o(o)e(v)o(ersions)i(but) 75 1906 y(uses)h(the)f(generalized)g(datat)o(yp)q(e)f(whic)o(h)h(includes)f (the)i(basic)e(datat)o(yp)q(es)h(as)g(sp)q(ecial)f(cases.)21 b(The)15 b(ab)q(o)o(v)o(e)f(table)75 1956 y(allo)o(ws)d(for)g(the)h(non-\\h") g(v)o(ersions)g(so)g(that)g(arra)o(ys)g(and)f(sparse)i(matrix)d(p)q(eople)j (can)f(get)g(what)g(they)g(need)h(\(this)75 2006 y(also)g(is)g(closest)i(to)e (what)h(w)o(e)f(had)h(b)q(efore\).)19 b(The)14 b(heterogeneous)h(cases)g(\(h) o(v)o(ector,)f(hindexed\))g(seem)g(v)o(ery)g(easy)75 2055 y(to)e(co)q(de)i (but)f(are)g(another)g(set)g(of)f(functions.)18 b(They)12 b(allo)o(w)f (elemen)o(ts)i(of)f(a)g(C)g(t)o(yp)q(e)i(structure)g(to)f(b)q(e)g(pulled)f (out)75 2105 y(in)i(the)h(subset.)22 b(What)14 b(w)o(e)h(decide)g(will)e (also)h(a\013ect)i(the)f(additional)d(functions)j(that)g(are)g (included/excluded.)75 2155 y(W)m(e)e(need)i(to)f(discuss)h(the)g(righ)o(t)e (w)o(a)o(y)g(to)h(limit)d(this)j(functionalit)o(y)e(in)i(the)g(subset.)75 2367 y fb(10.3.2)49 b(Collective)18 b(Communication)f(F)o(unctionalit)o(y)75 2456 y fj(The)e(table)h(b)q(elo)o(w)f(con)o(tains)g(a)g(summary)f(b)o(y)h (section)h(of)e(whic)o(h)i(features)f(of)f(the)h(collectiv)o(e)i(comm)o(u-)75 2512 y(nication)f(c)o(hapter)f(are)g(included)j(and)d(excluded)i(from)e(the)g (subset.)120 2629 y(Section)62 b(Title)419 b(Included)247 b(Excluded)75 2651 y 1709 2 v 120 2704 a fk(??)155 b fj(Barrier)15 b(Sync)o(h.)227 b fa(MPI)s 14 2 v 13 w(BARRIER)130 b fj(||)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 119 5 bop 75 -100 a ff(10.3.)34 b(SUBSET)15 b(FUNCTIONALITY)1014 b fj(119)120 45 y fk(??)155 b fj(Broadcast)314 b fa(MPI)s 14 2 v 13 w(BCAST)172 b fj(||)120 114 y fk(??)155 b fj(Gather)374 b fa(MPI)s 14 2 v 13 w(GA)l(THER)142 b fj(||)120 183 y fk(??)155 b fj(Scatter)372 b fa(MPI)s 14 2 v 13 w(SCA)l(TTER)119 b fj(||)120 252 y fk(??)155 b fj(All-to-all)17 b(broadcast)128 b fa(MPI)s 14 2 v 13 w(ALLCAST)122 b fj(||)120 321 y fk(??)155 b fj(All-to-all)17 b(scatter-gather)44 b fa(MPI)s 14 2 v 13 w(ALL)l(TO)o(ALL)98 b fj(||)120 390 y fk(??)155 b fj(Reduce)371 b fa(MPI)s 14 2 v 13 w(REDUCE)141 b(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(REDUCE)870 459 y fj(\(All)16 b(ops\))208 b fa(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(REDUCEA)839 527 y(MPI)s 14 2 v 13 w(ALLREDUCE)61 b(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(ALLREDUCE)1254 596 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(ALLREDUCEA)120 665 y fk(??)155 b fj(Scan)421 b(||)325 b fa(MPI)s 14 2 v 13 w(SCAN)120 734 y fk(??)1084 b fa(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(SCAN)120 803 y fk(??)g fa(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(SCANA)166 922 y fj(A)13 b(collectiv)o(e)j(comm)o(unication)e(op)q(erates)f(on)h(a)f (comm)o(unicator.)19 b(This)14 b(de\014nes)g(the)g(scop)q(e)g(of)f(the)75 978 y(op)q(eration.)20 b(A)14 b(collectiv)o(e)j(op)q(eration)e(can)f(accept)h (an)o(y)f(comm)o(unicator)g(that)g(can)h(b)q(e)g(created)g(within)75 1035 y(the)20 b(subset.)36 b(As)20 b(stated)g(previously)l(,)j(the)d (limitations)i(will)g(b)q(e)f(made)f(through)g(the)g(mec)o(hanisms)75 1091 y(a)o(v)m(ailable)d(to)d(create)h(and)h(manipulate)g(comm)o(unicators.) 166 1226 y fe(Discussion:)166 1278 y fd(There)h(are)f(a)f(lot)g(of)g(data)g (mo)o(v)o(e)f(functions.)23 b(I)16 b(could)f(not)h(think)f(of)g(a)g(w)o(a)o (y)g(to)h(dra)o(w)f(a)h(line)f(to)g(exclude)75 1328 y(some.)i(Do)c(w)o(e)i(w) o(an)o(t)e(all)g(of)g(these)i(in)f(the)g(subset.)20 b(Ho)o(w)13 b(often)h(are)g(ALLCAST,)g(ALLSCA)m(TTER)f(used?)166 1545 y fe(Discussion:)166 1597 y fd(F)m(or)g(the)i(subset)g(do)f(w)o(e)g(w)o(an)o(t) f(b)q(oth)h(the)h(REDUCE)f(and)f(ALLREDUCE)h(v)o(ersions?)166 1815 y fe(Discussion:)166 1867 y fd(W)m(e)f(v)o(oted)h(at)g(the)h(June)f (meeting)f(to)h(remo)o(v)o(e)f(scan)h(from)e(the)j(subset)75 2084 y fb(10.3.3)49 b(T)l(op)q(ology)20 b(F)o(unctionalit)o(y)75 2251 y fe(Discussion:)166 2303 y fd(One)c(of)e(the)i(new)f(features)h(of)f (MPI)g(is)g(pro)q(cess)i(top)q(ologies.)k(As)15 b(suc)o(h)h(it)f(w)o(ould)f (b)q(e)i(nice)f(to)g(ha)o(v)o(e)g(them)75 2353 y(in)h(the)h(subset.)27 b(Since)17 b(a)f(legitimate)e(remapping)h(is)h(to)g(do)g(nothing)g(it)g(can)g (b)q(e)h(argued)g(that)f(it)g(is)h(not)f(hard)75 2402 y(to)f(solv)o(e)h(the)g (mapping)e(problem)g(on)h(a)h(\014rst)g(pass.)24 b(Ho)o(w)o(ev)o(er,)16 b(to)f(implemen)o(t)e(something)i(that)g(gains)g(sp)q(eed)75 2452 y(for)h(the)g(user)h(will)d(tak)o(e)i(e\013ort.)25 b(W)m(e)16 b(ha)o(v)o(e,)f(so)h(far,)g(a)o(v)o(oid)f(putting)g(things)h(in)f(the)i (subset)g(if)e(it)h(w)o(as)g(b)q(eliev)o(ed)75 2502 y(that)i(the)g(initial)e (implemen)o(tati)o(on)f(w)o(ould)i(b)q(e)h(p)q(o)q(or)g(and)f(th)o(us)i(p)q (oten)o(tially)d(re\015ect)k(badly)c(on)i(that)g(part)g(of)75 2552 y(MPI.)d(Giv)o(en)f(all)f(of)i(this,)f(it)h(is)f(m)o(y)g(inclination)f (to)h(exclude)i(the)g(en)o(tire)f(top)q(ology)f(c)o(hapter)h(from)f(the)h (subset.)75 2602 y(Commen)o(ts?)166 2654 y(If)f(the)h(top)q(ology)f(section)h (w)o(ere)h(to)e(b)q(e)h(included)g(in)f(the)i(subset,)f(it)g(w)o(ould)e(b)q (e)j(p)q(ossible)f(to)f(only)g(include)75 2704 y(the)f(grid/tori)e(functions) h(and)f(remo)o(v)o(e)g(the)i(more)e(general)h(graph)g(functions.)17 b(This)12 b(w)o(ould)f(simplify)e(the)k(initial)-32 46 y fi(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 120 6 bop 75 -100 a fj(120)592 b ff(SECTION)16 b(10.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)75 45 y fd(implemen)o(tatio)o(n)11 b(and)j(probably)f(co)o(v)o(er)i(a)e(large)h(p)q(ercen)o(tage)h(of)f (applications.)75 249 y fb(10.3.4)49 b(Language)18 b(Binding)75 411 y fe(Discussion:)166 461 y fd(I)d(assume)f(w)o(e)i(w)o(an)o(t)e(to)h (supp)q(ort)h(b)q(oth)f(the)g(F77)g(and)g(C)g(binding)f(in)g(the)i(subset.)22 b(The)16 b(F)m(ortran)f(90)f(and)75 511 y(C++)g(bindings)g(are)g(done)g (through)g(F77)g(and)f(C)h(and)g(th)o(us)g(are)g(not)g(an)g(issue)g(for)g (the)g(subset.)75 715 y fb(10.3.5)49 b(Environmental)17 b(Management)f(and)h (Inquiry)75 877 y fe(Discussion:)166 927 y fd(Clearly)e(the)i(startup)g(mec)o (hanism)d(m)o(ust)h(b)q(e)i(in)f(the)h(subset.)26 b(W)m(e)16 b(also)f(need)i fc(MPI)r 13 2 v 13 w(rank)g fd(and)f fc(MPI)r 13 2 v 12 w(size)p fd(.)75 977 y(After)21 b(this)f(it)g(is)g(up)h(for)f (grabs.)37 b(I)20 b(don't)g(think)g(an)o(y)g(of)f(the)i(others)g(are)g(essen) o(tial)g(to)f(the)h(subset.)38 b(F)m(or)75 1027 y(simpli\014cation)11 b(reasons)k(ma)o(yb)q(e)e(w)o(e)h(should)f(remo)o(v)o(e)g(all)g(the)i(other)f (calls.)k(Commen)o(ts?)75 1231 y fb(10.3.6)49 b(Pro\014ling)18 b(F)o(unctionalit)o(y)75 1393 y fe(Discussion:)166 1443 y fd(The)e (pro\014ling)f(c)o(hapter)j(is)d(easy)i(to)f(implemen)o(t)d(but)j(doubles)h (the)f(n)o(um)o(b)q(er)g(of)f(functions.)25 b(As)16 b(suc)o(h,)h(it)75 1493 y(increase)f(the)f(w)o(ork)f(that)g(m)o(ust)g(b)q(e)h(done)f(b)o(y)g(an) h(implem)o(en)o(ter)e(though)h(this)h(could)f(easily)g(b)q(e)h(automated.)j (It)75 1542 y(do)q(es)e(not)f(seem)g(crucial)h(to)f(other)h(parts)f(of)g(the) h(subset)h(nor)e(a)g(signi\014can)o(t)g(new)g(feature.)23 b(Not)16 b(sure)g(what)f(to)75 1592 y(do)f(here)h(but)f(from)e(a)i(simpli\014cation)d (stand)j(p)q(oin)o(t)f(it)h(w)o(ould)f(b)q(e)h(b)q(est)h(to)f(also)f(drop)h (this)g(c)o(hapter.)75 1797 y fb(10.3.7)49 b(Maps,)17 b(Groups)e(and)i (Contexts)75 1958 y fe(Discussion:)166 2008 y fd(W)m(e)e(ha)o(v)o(e)h(not)f (discussed)j(a)d(single)h(uni\014ed)g(prop)q(osal)f(y)o(et)h(for)g(this)f(c)o (hapter.)25 b(Un)o(til)15 b(w)o(e)h(pin)f(do)o(wn)h(to)f(a)75 2058 y(greater)e(exten)o(t)g(what)f(will)f(b)q(e)i(in)f(the)g(full)f (standard)i(I)f(am)f(dela)o(ying)g(doing)g(an)o(ything)g(for)h(the)h(subset.) 19 b(Sev)o(eral)75 2108 y(p)q(eople)13 b(ha)o(v)o(e)g(expressed)j(that)d(con) o(texts)h(are)g(a)e(signi\014can)o(t)h(new)h(feature)f(in)g(MPI)g(and)g(w)o (e)h(should)e(try)i(and)f(get)75 2158 y(them)g(in)o(to)g(the)i(subset.)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF From owner-mpi-iac@CS.UTK.EDU Mon Aug 9 13:12:37 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA14271; Mon, 9 Aug 93 13:12:37 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA14109; Mon, 9 Aug 93 13:12:01 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Mon, 9 Aug 1993 13:12:00 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA14094; Mon, 9 Aug 93 13:11:53 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA17352; Mon, 9 Aug 93 13:11:44 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00737; Mon, 9 Aug 93 13:11:48 EDT Date: Mon, 9 Aug 93 13:11:48 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9308091711.AA00737@b125.super.org> To: mpi-iac@cs.utk.edu Subject: LaTex - second message \chapter{Initial Implementation Subset} \label{sec:subset} \label{chap:subset} \label{sec:iis} \label{chap:iis} \section{Introduction} \par This chapter defines the minimal subset of MPI for initial implementation. This subset is being defined so that consistent implementations can appear more rapidly. It was recognized early in the process that MPI needed to appear as quickly as possible and practical. The creation of a subset will hopefully allow users earlier access to the standard and still allow for the writing of portable message passing codes. \par This subset should not in any way be construed as a limitation on MPI implementations. It is strictly the minimum necessary to have an initial MPI subset conforming implementation. It is hoped that an officially sanctioned subset will encourage and allow implementors to introduce MPI in a more timely fashion. It should be noted, however, that implementation of the subset does not make an implementation conform with MPI. The subset is only a potential first step in the process. All implementations must ultimately conform to the entire standard; implementations are encouraged to do the full standard as rapidly as possible. \par The subset presented is consistent with the complete MPI standard. This was an important goal so the additional MPI features could be added without changing any functionality from the user's perspective. Thus, users can be assured that programs written now for the subset will run without modification under the full MPI standard. Furthermore, using additional features of the full MPI standard in the future will not require changes to code already written. This requires that the MPI functions have their full calling arguments in the subset. To achieve this goal, the subset will limit access to full MPI functionality through complete elimination of functions or limitations on the creation mechanisms for certain MPI input arguments. Any argument capable of being constructed within the subset can be used as an argument to a subset function where it would be allowed in the full standard. For example, any group that can be created with the subset is an allowed argument in any subset function where a group is an appropriate argument. However, some of the more complex mechanisms for group creation have been removed from the subset. \par Users may use MPI features outside this subset that are offered by various implementors. However, people who require portability during the early development of MPI may experience some difficulties until later in the development process. This subset is meant to offer the opportunity for a greater level of portability until the full MPI standard is implemented on multiple platforms. \discuss{ At the June meeting we decided to try and make a single subset. It was felt that having a multilevel subset would be more complex and potentially confusing. Thus, an item is either in or out of the subset. This will only be reconsidered if this binary choice becomes a serious problem. } \section{Criteria and Rational} \par Having the subset be consistent with the entire MPI standard was considered critical to the effort. In addition to this, there were many possible criteria to use in determining the elements of MPI to include in the subset. The main criteria used were that the MPI subset should \begin{enumerate} \item contain routines that are as close as possible to current standard practice to minimize the effort to port codes. \item contain as many new and important MPI features as possible. \item allow developers to be able to have the subset show up as rapidly as possible while still meeting the other criteria. \end{enumerate} \par There were many rationales for these criteria. It was recognized that it is impossible to come up with an ideal subset and compromises were necessary. It was felt that current users should be comfortable in migrating to MPI. Thus, the subset should contain the message passing elements that represent common practice today. Furthermore, it was felt that the initial (and later) version of MPI should maintain efficiency. Otherwise users could suffer from disenchantment with MPI on their first usage and may never give the standard a second try. Having the standard routines in the subset should encourage developers to optimized these routines in the initial version of MPI. Also, though some felt that the portability offered by the MPI subset was sufficient to entice users, many felt that the subset should contain some new feature(s) over and above current common practice as an added incentive. The additional items selected were meant to represent some of the significant new features of MPI. Balanced against these first two goals is the need for the subset to show up in a timely fashion. Thus, each feature chosen for inclusion in the subset was deemed of sufficient importance to outweigh its added complexity in implementing the subset. Though some functions seem easy to implement there are often overlooked costs in testing, documentation and development that was considered before a feature was added to the MPI subset. Inclusion of too many routines might lead to moderately efficient implementation of them all instead of a very efficient and possibly more useful implementation of a smaller subset. \discuss{ Should it be a criteria that the rest of MPI be able to be layered on top so users might get early (though lower performance) access to the complete standard? This is aimed at allowing easy and efficient layering of the rest so that a ``machine independent'' package could be created without having the developer jump through lots of hops. This might happen if a few functions were left out that didn't meet the other criteria. However, some felt it was not a strong enough reason to leave it in and may lead to poor MPI implementations of these layered routines. At the June meeting it was decided that unless this turns out to be important, it will not be added to the text. } \section{Subset Functionality} \discuss { Most of the material in this section is either substantially reworked or new. It hopefully reflects the changes made in many of the chapters since the June meeting. As such, it has not been discussed by the MPI group and still needs polishing. I would like to agree to the concepts at this point and then polish up the presentation. Appropriate text will be added after we agree to what is in/out of the subset. } \subsection{Point to Point Functionality} \par The table below contains a summary by section of which features of the point to point communications chapter are included and excluded from the subset. \goodbreak \vskip 0.2truein %\vbox{ \halign{\quad#\hfil &\quad#\hfil &\quad#\hfil &\quad#\hfil \cr %\multispan 4 \hfil \underline{Point to Point Communication} \hfil \cr %\noalign{\kern 10pt} Section &Title &Included &Excluded \cr \noalign{\kern 5pt} \noalign{\hrule} \noalign{\kern 5pt} \ref{sec:pt2pt-basicsend} &Basic Send Operation &\func{MPI\_SEND} &------ \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-messagedata}&Message Data &All types &------ \cr \noalign{\kern 3pt} \ref{sec:pt2pt-basicreceive} &Basic Recv Operation &\func{MPI\_RECV} &------ \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-status} &Return Status &\func{MPI\_GET\_SOURCE} &------ \cr & &\func{MPI\_GET\_TAG} & \cr & &\func{MPI\_GET\_COUNT} & \cr \noalign{\kern 3pt} \ref{sec:pt2pt-conversion} &Data Conversion &------ &``All'' \cr \noalign{\kern 3pt} \ref{sec:pt2pt-modes} &Comm. Modes &Standard &\func{MPI\_RSEND} \cr & & &\func{MPI\_SSEND} \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-commstart} &Comm. Initiation &\func{MPI\_ISEND} &\func{MPI\_IRSEND} \cr & &\func{MPI\_IRECV} &\func{MPI\_ISSEND} \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-commend} &Comm. Completion &\func{MPI\_WAIT} &------ \cr & &\func{MPI\_TEST} & \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-commend} &Multiple Completion &------ &\func{MPI\_WAITANY} \cr & & &\func{MPI\_TESTANY} \cr & & &\func{MPI\_WAITALL} \cr & & &\func{MPI\_TESTALL} \cr \noalign{\kern 3pt} \ref{sec:pt2pt-probe} &Probe \& Cancel &\func{MPI\_PROBE} &\func{MPI\_CANCEL} \cr & &\func{MPI\_IPROBE} &\func{MPI\_TEST\_CANCEL} \cr & &\func{MPI\_PROBE\_COUNT} & \cr \noalign{\kern 3pt} \ref{sec:pt2pt-persistent} &Persistent Comm. &------ &\func{MPI\_CREATE\_SEND} \cr &~~Objects & &\func{MPI\_CREATE\_RSEND} \cr & & &\func{MPI\_CREATE\_SSEND} \cr & & &\func{MPI\_CREATE\_RECV} \cr & & &\func{MPI\_START} \cr & & &\func{MPI\_FREE} \cr \noalign{\kern 3pt} \ref{sec:pt2pt-sendrecv} &Send-receive &\func{MPI\_SENDRECV} &\func{MPI\_EXCHANGE} \cr \noalign{\kern 3pt} \ref{sec:pt2pt-nullproc} &Null process &\const{MPI\_PROCNULL} &------ \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-datatypeconst}&Derived Datatypes &\func{MPI\_TYPE\_CONTIGUOUS} & \cr & &\func{MPI\_TYPE\_VECTOR} &\func{MPI\_TYPE\_HVECTOR} \cr & &\func{MPI\_TYPE\_INDEXED} &\func{MPI\_TYPE\_HINDEXED} \cr & & &\func{MPI\_TYPE\_STRUCT} \cr \noalign{\kern 3pt} \ref{subsec:pt2pt-addfunc} &Additional &\func{MPI\_TYPE\_COMMIT} &\func{MPI\_ADDRESS} \cr &~~Functions &\func{MPI\_FREE} &\func{MPI\_TYPE\_EXTEND} \cr \noalign{\kern 10pt} } %} \vskip 0.2truein \par In addition to these specific functions, all the features and criteria of point to point communication hold for the subset. Thus, the message envelope in subsection \ref{subsec:pt2pt-envelope}, the semantics in section \ref{sec:pt2pt-semantics}, the type matching in section \ref{sec:pt2pt-typematch} and the communication objects in subsection \ref{subsec:pt2pt-commobject} are all part of the subset. \discuss { At the June meeting we voted to remove the multiple completion tests from the subset } \discuss { At the June meeting we voted to remove INIT, START, etc. This is carried over in the removal of the persistent communication objects. } \discuss { send-recv is new. It is used in several systems now and is somewhat common practice. Users coding this often make a mistake. The procnull seems easy and of great use if we have send-recv. I left these in the subset. comments? } \discuss { Derived datatypes are new. We previously voted to allow the contiguous buffer versions and limit buffer operations to only one append. The current draft does not have these two versions but uses the generalized datatype which includes the basic datatypes as special cases. The above table allows for the non-``h'' versions so that arrays and sparse matrix people can get what they need (this also is closest to what we had before). The heterogeneous cases (hvector, hindexed) seem very easy to code but are another set of functions. They allow elements of a C type structure to be pulled out in the subset. What we decide will also affect the additional functions that are included/excluded. We need to discuss the right way to limit this functionality in the subset. } %The operations involving contiguous buffers are included since they %represent standard practice today. In addition, the communications %buffers are also included because they offer an important new feature %in MPI. However, to simplify the implementation, the communication %buffer will be limited to one component, e.g., only one append is %allowed. This limitation will still allow the user access to the %strided and indexed cases but require more complex cases to be done by %the user. %\par %Much of the point to point communication functions represent common %practice and are included in subset. %\discuss{ % %If we eliminated communication buffers then the number of routines %would be greatly reduced. We would only have the ``C'' routines in %collective communications and contiguous in pt-2-pt. Right now I %think we should leave it in but I point this out % %} %\discuss{ %The heterogeneous cases (hvector, hindexed) seem very easy to code but %are another set of functions. They allow elements of a C type %structure to be pulled out in the subset. It has been pointed out %that even simple routines have a cost of testing, documentation, etc. %that can easily outweigh the coding cost. %} %Of the three types of communication modes, the STANDARD mode %represents standard practice and is included. The other two modes are %not used as commonly and therefore excluded. This applies to all of %the point-to-point communications routines. %The common versions of blocking and nonblocking send and receive are %included. In addition, the low level routines of INIT and START are %included. These should help users who wish greater control over %communications for optimization purposes. For example, this would %allow for the reuse of a persistent handle. \subsection{Collective Communication Functionality} \goodbreak \par The table below contains a summary by section of which features of the collective communication chapter are included and excluded from the subset. \vskip 0.2truein %\vbox{ \halign{\quad#\hfil &\quad#\hfil &\quad#\hfil &\quad#\hfil \cr %\multispan 4 \hfil \underline{Collective Communication} \hfil \cr %\noalign{\kern 10pt} Section &Title &Included &Excluded \cr \noalign{\kern 5pt} \noalign{\hrule} \noalign{\kern 5pt} \ref{sec:coll-barrier} &Barrier Synch. &\func{MPI\_BARRIER} &------ \cr \noalign{\kern 3pt} \ref{subsec:coll-broadcast} &Broadcast &\func{MPI\_BCAST} &------ \cr \noalign{\kern 3pt} \ref{subsec:coll-gather} &Gather &\func{MPI\_GATHER} &------ \cr \noalign{\kern 3pt} \ref{subsec:coll-scatter} &Scatter &\func{MPI\_SCATTER} &------ \cr \noalign{\kern 3pt} \ref{subsec:coll-allcast} &All-to-all broadcast &\func{MPI\_ALLCAST} &------ \cr \noalign{\kern 3pt} \ref{subsec:coll-alltoall} &All-to-all scatter-gather&\func{MPI\_ALLTOALL} &------ \cr \noalign{\kern 3pt} \ref{subsec:coll-reduce} &Reduce &\func{MPI\_REDUCE} &\func{MPI\_USER\_REDUCE} \cr \noalign{\kern 3pt} & &~~(All ops) &\func{MPI\_USER\_REDUCEA} \cr \noalign{\kern 3pt} & &\func{MPI\_ALLREDUCE} &\func{MPI\_USER\_ALLREDUCE} \cr \noalign{\kern 3pt} & & &\func{MPI\_USER\_ALLREDUCEA} \cr \noalign{\kern 3pt} \ref{subsec:coll-scan} &Scan &------ &\func{MPI\_SCAN} \cr \noalign{\kern 3pt} \ref{subsec:coll-scan} & & &\func{MPI\_USER\_SCAN} \cr \noalign{\kern 3pt} \ref{subsec:coll-scan} & & &\func{MPI\_USER\_SCANA} \cr } %} \vskip 0.2truein %The collective communication routines have the same general %restrictions as the point to point routines. Therefore, the buffer %descriptors will be limited to one entry. A collective communication operates on a communicator. This defines the scope of the operation. A collective operation can accept any communicator that can be created within the subset. As stated previously, the limitations will be made through the mechanisms available to create and manipulate communicators. \discuss{ There are a lot of data move functions. I could not think of a way to draw a line to exclude some. Do we want all of these in the subset. How often are ALLCAST, ALLSCATTER used? } \discuss{ For the subset do we want both the REDUCE and ALLREDUCE versions? } \discuss { We voted at the June meeting to remove scan from the subset } \subsection{Topology Functionality} \discuss{ One of the new features of MPI is process topologies. As such it would be nice to have them in the subset. Since a legitimate remapping is to do nothing it can be argued that it is not hard to solve the mapping problem on a first pass. However, to implement something that gains speed for the user will take effort. We have, so far, avoid putting things in the subset if it was believed that the initial implementation would be poor and thus potentially reflect badly on that part of MPI. Given all of this, it is my inclination to exclude the entire topology chapter from the subset. Comments? If the topology section were to be included in the subset, it would be possible to only include the grid/tori functions and remove the more general graph functions. This would simplify the initial implementation and probably cover a large percentage of applications. } \subsection{Language Binding} \discuss{ I assume we want to support both the F77 and C binding in the subset. The Fortran 90 and C++ bindings are done through F77 and C and thus are not an issue for the subset. } \subsection{Environmental Management and Inquiry} \discuss{ Clearly the startup mechanism must be in the subset. We also need \const{MPI\_rank} and \const{MPI\_size}. After this it is up for grabs. I don't think any of the others are essential to the subset. For simplification reasons maybe we should remove all the other calls. Comments? } \subsection{Profiling Functionality} \discuss{ The profiling chapter is easy to implement but doubles the number of functions. As such, it increase the work that must be done by an implementer though this could easily be automated. It does not seem crucial to other parts of the subset nor a significant new feature. Not sure what to do here but from a simplification stand point it would be best to also drop this chapter. } \subsection{Maps, Groups and Contexts} \discuss{ We have not discussed a single unified proposal yet for this chapter. Until we pin down to a greater extent what will be in the full standard I am delaying doing anything for the subset. Several people have expressed that contexts are a significant new feature in MPI and we should try and get them into the subset. } \subsection{Subset Testing} \discuss{ There has been discussion of creating a test suite for MPI. Would it be possible/make sense to create a subset test suite so that these early versions could be tested and not simply have people say that the full test suite will obviously fail in some ways? } From owner-mpi-iac@CS.UTK.EDU Tue Aug 10 02:06:03 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA18258; Tue, 10 Aug 93 02:06:03 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA03260; Tue, 10 Aug 93 02:05:32 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 10 Aug 1993 02:05:31 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from chenas.inria.fr by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA03242; Tue, 10 Aug 93 02:05:26 -0400 Received: from irgate (irgate.ifp.fr) by chenas.inria.fr (5.65c8d/92.02.29) via Fnet-EUnet id AA07889; Tue, 10 Aug 1993 08:05:19 +0200 (MET) Received: from irsun21.ifp.fr by irgate, Tue, 10 Aug 93 08:05:19 +0200 Received: by irsun21.ifp.fr, Tue, 10 Aug 93 08:05:11 +0200 Date: Tue, 10 Aug 93 08:05:11 +0200 From: stoessel@irsun21.ifp.fr (Alain Stoessel) Message-Id: <9308100605.AA16030@irsun21.ifp.fr> To: mpi-iac@cs.utk.edu Subject: Comments on draft Cc: lederman@super.org Hi Steve, Thanks for your job. The subset that is defining for pt2pt and collective communications is OK for me. With it, we can easily translate our codes from Casim, PICL or PVM3 to MPI. But, I have to wait for the final draft for contexts, groups and communicators. If you want to have efficiency (but not portability), you have to take in account the topology of the machine you are running on and the topology of the problem you want to treat. Usually you take it in account by managing different groups (row_i and column_j for a grid...). So either topology group will provide these groups to the users or we will have to create them by ourself. So, we will need to introduce in the subset many of the features of the context draft. So I think that topology functionality have to be in the subset because it seems to be easier to implement than contexts... and not only grip/tori. Comments ? Alain +-----------------------+------------------------------+ | Alain STOESSEL | Institut Francais du Petrole | | Tel: 33.1.47.52.71.33 | Parallel processing group | | Fax: 33.1.47.52.70.22 | 1-4 Av de Bois-Preau | | | 92506 RUEIL-MALMAISON | +-----------------------+------------------------------+ | Email: stoessel@irsun21.ifp.fr | +-----------------------+------------------------------+ From owner-mpi-iac@CS.UTK.EDU Tue Aug 10 08:30:00 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA19730; Tue, 10 Aug 93 08:30:00 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA00544; Tue, 10 Aug 93 08:29:15 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 10 Aug 1993 08:29:14 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA00536; Tue, 10 Aug 93 08:29:12 -0400 Received: from b125.super.org by super (4.1/SMI-4.1) id AA28571; Tue, 10 Aug 93 08:28:59 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA01038; Tue, 10 Aug 93 08:29:05 EDT Date: Tue, 10 Aug 93 08:29:05 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9308101229.AA01038@b125.super.org> To: stoessel@irsun21.ifp.fr In-Reply-To: <9308100605.AA16030@irsun21.ifp.fr> (stoessel@irsun21.ifp.fr) Subject: Re: Comments on draft Cc: mpi-iac@cs.utk.edu Alain, I will forward your comments to people at the meeting. You have a good point. I agree that topology is easier but context is considered more fundamental by many. Since we now have communicators in the communication calls we have to have some version of context in the subset. However, in Rolf's absence, I will present the topology chapter at this meeting and should push it into the subset :-) Steve From owner-mpi-iac@CS.UTK.EDU Tue Sep 7 09:48:23 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA01759; Tue, 7 Sep 93 09:48:23 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA09491; Tue, 7 Sep 93 09:48:06 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 7 Sep 1993 09:48:05 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA09483; Tue, 7 Sep 93 09:48:03 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA25888; Tue, 7 Sep 93 09:48:01 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA00399; Tue, 7 Sep 93 09:48:00 EDT Date: Tue, 7 Sep 93 09:48:00 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9309071348.AA00399@b125.super.org> To: mpi-iac@cs.utk.edu Subject: overveiw/desired input for next draft Hi all, I am preparing the latest version of the subset chapter. I want to go over my recollection of the decisions at the last meeting and my current ideas for the chapter. Please let me/us know if you have any thoughts. Here goes: - Contexts, etc for intra-communications are in. I have a fuzzy recollection of what was excluded (This occurred Thursday night after dinner at the bar :-). We decided to remove MPI_CONTEXTS_ALLOC() as a finese way out of the problem. This stops the user for creating he/her own context to manipulate. I am not sure what we decided on MPI_COMM_BIND and MPI_COMM_MAKE - Who remembers? Inter-communications and cacheing is out. - Pt-2-Pt is pretty much like the last draft. We voted to include MPI_TYPE_HVECTOR, MPI_TYPE_HINDEX, MPI_ADDRESS and MPI_TYPE_EXTENT to deal with the derived data types more completely. - Collective comm is like the current draft. - Topology is out. - Language binding is "in" (clearly we will have C and F77). - profiling is in - Evniornmental inquiry is up in the air. We need the init mechanism and there was a desire for some of the other inquiry mechanisms. How far we will go was left up in the air. For example, MPI_ValidTags was asked for. What else do people want? Thoughts? I hope to have the new version out by the end of the week. Steve From owner-mpi-iac@CS.UTK.EDU Mon Sep 13 12:23:21 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA07707; Mon, 13 Sep 93 12:23:21 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA16366; Mon, 13 Sep 93 12:22:27 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Mon, 13 Sep 1993 12:22:25 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA16348; Mon, 13 Sep 93 12:21:58 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA13714; Mon, 13 Sep 93 12:21:49 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA02216; Mon, 13 Sep 93 12:21:48 EDT Date: Mon, 13 Sep 93 12:21:48 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9309131621.AA02216@b125.super.org> To: mpi-iac@cs.utk.edu Subject: latest version of subset chapter Hello committee, Attached is the latest PostScript of the iis chapter. PLEASE review it and give me your comments. Remember that the final vote on all of this is next week. I am having problems with the xrefs in LaTex so none of the section numbers came out. I will fix this up. As usual, the Postscript and LaTex is available via anonymous ftp at ftp.super.org in pub/mpi. Steve ---------------------------------------------------------------------- %!PS-Adobe-2.0 %%Creator: This is dvips, version 5.35 (C) 1986-90 Radical Eye Software %%Title: harness.dvi %%Pages: 7 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginProcSet: tex.pro /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /islandscape false N /vsize 10 N /@rigin{islandscape{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale Resolution VResolution vsize neg mul translate}B /@letter{/vsize 10 N}B /@landscape{/islandscape true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@legal{/vsize 13 N}B /@manualfeed {statusdict /manualfeed true put}B /@copies{/#copies exch N}B /@FontMatrix[1 0 0 -1 0 0]N /@FontBBox[0 0 0 0]N /dmystr(ZZf@@@)N /newname{dmystr cvn}B /df{ /scalefactor 1 N /fntrx @FontMatrix N df-tail}B /dfs{div /scalefactor exch N /fntrx[scalefactor 0 0 scalefactor neg 0 0]N df-tail}B /df-tail{/maxcc exch N /numcc exch N /fontname exch N dmystr 2 fontname cvx(@@@@)cvs putinterval newname 8 dict N newname load begin /FontType 3 N /FontMatrix fntrx N /FontBBox @FontBBox N /BitMaps numcc array N /base maxcc string N /BuildChar{ CharBuilder}N /Encoding IdentityEncoding N end fontname{/foo setfont}2 array copy cvx N fontname load 0 dmystr 6 string copy cvn cvx put /ctr 0 N[}B /E{ pop newname dup load definefont setfont}B /ch-image{ch-data 0 get dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /ch-width{ch-data 1 get}B /ch-height{ch-data 2 get}B /ch-xoff{ch-data 3 get}B /ch-yoff{ch-data 4 get}B /ch-dx{ch-data 5 get}B /ctr 0 N /CharBuilder{save 3 1 roll exch dup /base get 2 index get exch /BitMaps get exch get /ch-data exch N pop /ctr 0 N ch-data null ne{ch-dx 0 ch-xoff ch-yoff neg ch-xoff ch-width add ch-height ch-yoff sub setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-height ch-yoff sub .1 add]{ch-image}imagemask}if restore}B /D{newname load dup /base get 3 2 roll ctr put /BitMaps get exch ctr exch dup dup 5 get scalefactor div 5 exch put put /ctr ctr 1 add N[}B /bop{userdict /bop-hook known{bop-hook}if /SaveImage save N @rigin 0 0 moveto}B /eop{userdict /eop-hook known{eop-hook} if clear SaveImage restore showpage}B /@start{userdict /start-hook known{ start-hook}if /VResolution exch N /Resolution exch N 1000 div /DVImag exch N /IdentityEncoding 256 array N 0 1 255{IdentityEncoding exch 1 string dup 0 3 index put cvn put}for}B /p /show load N /RuleMatrix[1 0 0 -1 -.1 -.1]N /BlackDots 8 string N /v{gsave currentpoint translate false RuleMatrix{ BlackDots}imagemask grestore}B /a{moveto}B /delta 0 N /tail{dup /delta exch N 0 rmoveto}B /M{exch p delta add tail}B /b{exch p tail}B /c{-4 M}B /d{-3 M}B /e {-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /l{p -4 w}B /m{ p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /w{0 rmoveto}B /x{0 exch rmoveto}B /y{3 2 roll p a}B /bos{/section save N}B /eos{clear section restore}B end %%EndProcSet TeXDict begin 1000 300 300 @start /fa 31 122 df<007E0001C1800301800703C00E03C0 0E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8>21 29 0 0 23]12 D<60F0F0701010101020204080>4 12 4 8 12]44 D<60F0F060>4 4 4 0 12]46 D<00010003000600060006000C000C000C00180018001800300030003000600060 00C000C000C0018001800180030003000300060006000C000C000C001800180018003000300030 00600060006000C000C000>16 41 2 10 21]47 D<000600000006000000060000000F0000000F 0000000F00000017800000178000001780000023C0000023C0000023C0000041E0000041E00000 41E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C0006003E00 04001E0004001E000C001F001E001F00FF80FFF0>28 29 1 0 31]65 D12 28 1 0 15]73 D33 28 2 0 38]77 D23 28 2 0 28]80 D<7FFFFFC0700F01C0600F00 C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F0000000F 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000001F800003FFFC00>27 28 1 0 30]84 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C00E01C 40E01C40E01C40603C40304E801F8700>18 18 2 0 21]97 D19 29 1 0 23]98 D<07E00C301878307870306000E000E000E000E000E000E00060007004300418 080C3007C0>14 18 2 0 18]99 D<003F00000700000700000700000700000700000700000700 00070000070000070003E7000C1700180F00300700700700600700E00700E00700E00700E00700 E00700E00700600700700700300700180F000C370007C7E0>19 29 2 0 23]100 D<03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C18 03E0>15 18 1 0 18]101 D<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE0>15 29 0 0 13]102 D<00038003C4C00C38C01C3880181800381C00381C00381C00381C001818001C 38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0C000C0C0 00C06001803003001C0E0007F800>18 28 1 9 21]103 D20 29 1 0 23]104 D<18003C003C0018000000000000000000000000000000FC001C001C001C001C 001C001C001C001C001C001C001C001C001C001C001C001C00FF80>9 29 1 0 12]105 D9 29 1 0 12]108 D33 18 1 0 36]109 D20 18 1 0 23]110 D<03F0000E1C00180600300300700380600180E001C0E001C0E0 01C0E001C0E001C0E001C06001807003803003001806000E1C0003F000>18 18 1 0 21]111 D19 26 1 8 23]112 D13 18 1 0 16]114 D<1F9030704030C010C010E010F800 7F803FE00FF000F880388018C018C018E010D0608FC0>13 18 1 0 16]115 D<04000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C001C10 1C101C101C101C100C100E2003C0>12 26 1 0 16]116 D20 18 1 0 23]117 D19 18 1 0 22]118 D27 18 1 0 30]119 D<7F8FF00F03800F030007020003840001C80001D80000F0000070000078 0000F800009C00010E00020E000607000403801E07C0FF0FF8>21 18 0 0 22]120 D19 26 1 8 22]121 D E /fb 8 118 df<78FCFCFCFC7800000000000078FCFC FCFC78>6 18 3 0 13]58 D31 28 2 0 37]68 D<03FC000E0E001C1F003C1F00781F00780E00F80000F8 0000F80000F80000F80000F800007800007801803C01801C03000E0E0003F800>17 18 2 0 21]99 D<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F 001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0>11 30 1 0 14]105 D24 18 1 0 27]110 D<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800 F07800F03C01E01E03C00F078001FC00>21 18 1 0 24]111 D<1FD830786018E018E018F000FF 807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC0>14 18 2 0 19]115 D24 18 1 0 27]117 D E /fc 48 123 df<00700000F80000F80000D80000D80001DC0001DC0001DC00018C00038E00038E00038E 00038E000306000707000707000707000707000FFF800FFF800FFF800E03800E03801C01C01C01 C07F07F0FF8FF87F07F0>21 28 1 0 24]65 D20 28 1 0 24]66 D<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000E0700000E00000 E00000E00000E00000E00000E00000E00000E000007000007000E07000E03800E03C00E01E01C0 0F07C007FF8003FE0000F800>19 28 2 0 24]67 D<7FF800FFFE007FFF001C0F801C03C01C03 C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C00701C00701C00 F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800>20 28 1 0 24]68 D21 28 1 0 24]69 D19 28 2 0 24]70 D<01F1C003FDC00FFFC01F0FC01C03C03803C03801C07001C07001C0700000E0 0000E00000E00000E00000E00000E00FF0E01FF0E00FF07001C07001C07003C03803C03803C01C 07C01F0FC00FFFC003FDC001F1C0>20 28 2 0 24]71 D<7F07F0FF8FF87F07F01C01C01C01C0 1C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C0 1C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0>21 28 1 0 24]72 D<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001 C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001 C00001C0007FFF00FFFF807FFF00>17 28 3 0 24]73 D<7F07F0FF87F87F07F01C03C01C0780 1C07001C0E001C1E001C3C001C38001C70001CF0001DF0001DF0001FB8001FB8001F1C001E1C00 1C0E001C0E001C07001C07001C03801C03801C01C07F03F0FF87F87F03F0>21 28 1 0 24]75 D<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00700E00700E00700E 00700E00707FFFF0FFFFF07FFFF0>20 28 1 0 24]76 D21 28 1 0 24]77 D<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01C E1C01CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C 0DC01C0DC07F07C0FF87C07F03C0>21 28 1 0 24]78 D<0FF8003FFE007FFF00780F00700700 F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380 E00380E00380E00380E00380F00780700700780F007FFF003FFE000FF800>17 28 3 0 24]79 D20 28 1 0 24]80 D<0FF8003FFE007FFF00780F00700700 F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380 E00380E00380E1E380E1E380F0E78070F700787F007FFF003FFE000FFC00001C00001E00000E00 000F00000700000700>17 34 3 6 24]81 D<7FF800FFFE007FFF001C0F801C03801C03C01C01 C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F001C07001C03801C03801C03 801C03801C03801C039C1C039C1C039C7F01F8FF81F87F00F0>22 28 1 0 24]82 D<03F3801FFF803FFF807C0F80700780E00380E00380E00380E000007000007800003F 00001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E000E0E001E0F001C0F8 0780FFFF80FFFE00E7F800>19 28 2 0 24]83 D<7FFFF8FFFFF8FFFFF8E07038E07038E07038 E07038007000007000007000007000007000007000007000007000007000007000007000007000 00700000700000700000700000700000700007FF0007FF0007FF00>21 28 1 0 24]84 D23 28 0 0 24]85 D21 28 1 0 24]86 D21 28 1 0 24]87 D<7F8FE07F9FE07F8FE00E07000F0700 070E00078E00039C0003DC0001F80001F80000F00000F00000700000F00000F80001F80001DC00 039E00038E00070F000707000E07800E03801E03C07F07F0FF8FF87F07F0>21 28 1 0 24]88 D21 28 1 0 24]89 D<3FFFE07FFFE07FFFE07001C07003C0 700780700700000F00001E00001C00003C0000780000700000F00001E00001C00003C000078000 0700000F00001E00E01C00E03C00E07800E07000E0FFFFE0FFFFE0FFFFE0>19 28 2 0 24]90 D<1FE0003FF8007FFC00781E00300E0000070000070000FF0007FF001FFF007F 0700780700E00700E00700E00700F00F00781F003FFFF01FFBF007E1F0>20 20 3 0 24]97 D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800F FFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F 80E00FC1E00FFFC00EFF80063E00>21 28 0 0 24]98 D<01FE0007FF001FFF803E0780380300 700000700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01FFF80 07FF0001FC00>18 20 3 0 24]99 D<001F80003F80001F800003800003800003800003800003 8003E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380E00380E003 80700780700780380F803C1F801FFFF00FFBF803E3F0>21 28 2 0 24]100 D<01F00007FC001FFE003E0F00380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000 007000007001C03801C03E03C01FFF8007FF0001FC00>18 20 3 0 24]101 D<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C00001C0 0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF 007FFF007FFF00>19 28 1 0 24]102 D<01E1F007FFF80FFFF81E1E301C0E0038070038070038 07003807003807001C0E001E1E001FFC001FF80039E0003800001C00001FFE001FFFC03FFFE078 01F0700070E00038E00038E00038E000387800F07E03F01FFFC00FFF8001FC00>21 31 1 11 24]103 D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF80 0FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0 0E00E00E00E07FC3FCFFE7FE7FC3FC>23 28 0 0 24]104 D<03800007C00007C00007C0000380 000000000000000000000000007FC000FFC0007FC00001C00001C00001C00001C00001C00001C0 0001C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FFFF00>17 29 4 0 24]105 D21 28 1 0 24]107 D<7FE000FFE0007FE00000E00000E000 00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000 00E00000E00000E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0>19 28 2 0 24]108 D<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C 001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F 1F00FFBFBF807F1F1F00>25 20 -1 0 24]109 D<7E3E00FEFF807FFFC00FC1C00F80E00F00E0 0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE 7FC3FC>23 20 0 0 24]110 D<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000 E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001F000>19 20 2 0 24]111 D<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E 00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E00000E00000E00000E 00000E00000E00000E00007FC000FFE0007FC000>21 30 0 10 24]112 D<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C0000380000380000380000380000380 000380000380000380000380007FFE00FFFF007FFE00>21 20 1 0 24]114 D<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC0003FE00001F006007 80E00380E00380F00380F80F00FFFF00FFFC00E7F000>17 20 3 0 24]115 D<0180000380000380000380000380007FFFC0FFFFC0FFFFC00380000380000380000380000380 000380000380000380000380000380400380E00380E00380E001C1C001FFC000FF80003E00>19 25 1 0 24]116 D<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E 00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC>23 20 0 0 24]117 D<7F8FF0FF8FF87F8FF01E03C00E03800E03800E038007070007070007070003 8E00038E00038E00038E0001DC0001DC0001DC0000F80000F800007000>21 20 1 0 24]118 D<7F8FF07F9FF07F8FF0070700078E00039E0001DC0001F80000F80000700000 F00000F80001DC00039E00038E000707000F07807F8FF0FF8FF87F8FF0>21 20 1 0 24]120 D<7F8FF0FF8FF87F8FF00E01C00E03800E038007038007070007070003870003 8600038E0001CE0001CE0000CC0000CC0000DC0000780000780000780000700000700000700000 F00000E00079E0007BC0007F80003F00001E0000>21 30 1 10 24]121 D<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E00003C0000F80001F00003C0000780 000F00701E00703C0070780070FFFFF0FFFFF0FFFFF0>20 20 1 0 24]122 D E /fd 42 122 df<000078007C7800FC7801FC7803C000038000078000078000078000078000 078000078000078000078000FFFC78FFFC78FFFC78078078078078078078078078078078078078 078078078078078078078078078078078078078078078078078078078078078078078078078078 >21 36 0 0 26]12 D<787878781830306060E0>5 10 4 6 14]44 D4 4 5 0 14]46 D<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003C003C003C003C003C0 03C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0FFFFFFFFFFFF>16 34 4 0 24]49 D<03F0000FFC001FFE003C1F003007807007C06003C0E003E0C001E04001E040 01E00001E00001E00001E00003C00003C0000780000780000F00001E00003C0000780000F00001 E00001C0000380000700000E00001C0000380000700000FFFFE0FFFFE0FFFFE0>19 34 2 0 24]50 D<01F00007FC001FFF003E0F003807807003C02003C02003C00003C00003C000 03C0000780000780000F00001E0003FC0003F80003FE00000F000007800003C00003C00001E000 01E00001E00001E00001E08001E0C003C0E003C07007803C0F801FFF000FFC0003F000>19 35 2 1 24]51 D<001F00001F00002F00002F00006F0000EF0000CF0001CF0001CF00038F0003 8F00078F00070F000F0F000E0F001E0F003C0F003C0F00780F00780F00F00F00FFFFF8FFFFF8FF FFF8000F00000F00000F00000F00000F00000F00000F00000F00000F00>21 33 1 0 24]52 D<3FFF803FFF803FFF803C00003C00003C00003C00003C00003C00003C00003C 00003C00003CF8003FFE003FFF003F0F803E07803C03C03803C00001E00001E00001E00001E000 01E00001E00001E04003C04003C0E003C07007807C1F003FFE000FFC0003F000>19 34 2 1 24]53 D<007E0001FF0003FF0007C1000F00001E00001E00003C00003C000078000078 000078F800F1FE00F7FF00FF0F80FC0780F803C0F803C0F801C0F001E0F001E0F001E0F001E0F0 01E07001E07001E07801E07803C03803C03C03801C07801F0F000FFE0007FC0001F000>19 35 2 1 24]54 D19 33 2 0 24]55 D<01F00007FC000FFE001E0F003C07803C07807803C07803C07803C07803C078 03C03803803C07801E0F000F1E0007FC0003F8000FFE001E0F003C07807803C07803C0F001E0F0 01E0F001E0F001E0F001E0F001E07803C07803C03C07803E0F801FFF0007FC0001F000>19 35 2 1 24]56 D23 35 5 0 32]66 D<000FF000007FFC0000FFFF0001F01F0003C00700078000000F0000001E0000 003E0000003C0000003C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000000F0000000F0000000F0000000F00000007800000078000000780000003C0000003C 0000003E0000001E0000000F0000000780008003C0038001F00F8000FFFF00007FFC00000FF000 >25 37 3 1 31]67 D21 35 5 0 29]69 D20 35 5 0 28]70 D<000FF000003FFE0000FFFF8001F80F8003E00380078000000F0000001E0000 001E0000003C0000003C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000000F0000000F000FFC0F000FFC0F000FFC0780003C0780003C0780003C03C0003C03C 0003C01E0003C01E0003C00F0003C0078003C003E003C001F807C000FFFFC0003FFF00000FF800 >26 37 3 1 33]71 D4 35 4 0 13]73 D18 35 5 0 26]76 D31 35 5 0 42]77 D22 35 5 0 31]80 D<00FE0003FFC007FFE00F81E01E00603C00003C000078000078000078000078 00007800007C00003C00003F00001FC0000FFC0007FF0001FF80003FC00007E00001F00000F000 00F8000078000078000078000078000078000078C000F0E000F0F801E07E07C03FFF800FFF0001 FC00>21 37 2 1 27]83 D28 35 2 0 33]84 D<07E01FF83FFC381E201E000F000F000F000F00FF07FF1FFF3E0F780FF00FF0 0FF00FF00FF83F7FFF3FEF1F8F>16 22 2 0 23]97 D18 35 4 0 25]98 D<01FC0007FF000FFF801F03803C0180780000 780000700000F00000F00000F00000F00000F00000F000007800007800007800003C00401F03C0 0FFFC007FF8001FC00>18 22 2 0 22]99 D<0003C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C07803 C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC01FFF C00FFBC003E3C0>18 35 2 0 25]100 D<03F00007FC001FFE003E0F003C0780780380780380F0 01C0FFFFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F07800FFF8007 FF0001F800>18 22 2 0 22]101 D<01F07807FFF80FFFF81F1F001E0F003C07803C07803C0780 3C07803C07801E0F001F1F000FFE001FFC0019F0003800003800003C00001FFE001FFFC01FFFE0 3FFFF07801F07800F8F00078F00078F00078F000787800F03E03E01FFFC00FFF8001FC00>21 33 1 11 24]103 D4 35 3 0 11]105 D4 35 3 0 11]108 D30 22 4 0 39]109 D16 22 4 0 25]110 D<01FC0007FF000FFF801F07C03C01E078 00F07800F0700070F00078F00078F00078F00078F00078F000787800F07800F07C01F03E03E01F 07C00FFF8007FF0001FC00>21 22 1 0 24]111 D18 32 4 10 25]112 D<03E3C007FBC00FFFC01F0FC03C07C07C03C07803C0F803C0F003C0F0 03C0F003C0F003C0F003C0F003C0F803C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C000 03C00003C00003C00003C00003C00003C00003C00003C00003C00003C0>18 32 2 10 25]113 D11 22 4 0 17]114 D<07F01FFC3FFE3C0E7806780078007C 003F003FF01FF80FFC01FE001F000F000F000FC00FF81EFFFE3FFC0FF0>16 22 1 0 19]115 D<0F000F000F000F000F000F00FFF8FFF8FFF80F000F000F000F000F000F000F 000F000F000F000F000F000F000F000F080F1C07FC07F803E0>14 28 1 0 18]116 D16 22 4 0 25]117 D19 22 1 0 22]118 D<7801F07C01E03E03C01E07C00F0780078F0007DE 0003FC0001FC0000F80000700000F80001FC0003DC00039E00078F000F07801E07801E03C03C01 E07800F0F800F8>21 22 0 0 22]120 D19 32 1 10 22]121 D E /fe 18 90 df<3078F87870>5 5 4 0 13]46 D<000C001C00FC0F3800 38003800380038003800700070007000700070007000E000E000E000E000E000E001C001C001C0 01C001C001C0038003C0FFFE>15 30 4 0 23]49 D<007F000183C00201E00400F00700F00F00 F00F01F00F01F00001E00001E00003C0000380000700000E0000F800000E000007000007800007 C00003C00007C03007C07807C0F807C0F807C0F00780800F00400E00201C0018780007E000>20 31 3 1 23]51 D<0000100000001800000038000000380000007800000078000000FC000001BC 0000013C0000033C0000023C0000063C0000043E0000081E0000081E0000101E0000101E000020 1E0000200F0000400F0000400F0000FFFF0000800F0001000F8001000780020007800200078004 000780040007800C0007C03E0007C0FF807FFC>30 32 2 0 34]65 D<07FFFF00007C01C0003C 01E0003C00F0007800F8007800F8007800F8007800F8007800F8007800F000F001F000F001E000 F003C000F00F8000FFFE0000F00F0001E007C001E003C001E003E001E001E001E001E001E001E0 03C001E003C003E003C003E003C003C003C007C003C00F8007800F0007803E00FFFFF000>29 31 2 0 32]66 D<0001F808000E061800380138007000F801E0007803C0007007800030078000 300F0000301F0000301E0000303E0000203C0000007C0000007C0000007C0000007C000000F800 0000F8000000F8000000F8000000F80000007800004078000080780000803C0000803C0001001C 0002000E00020006000C000300100001C0E000003F0000>29 33 5 1 33]67 D<07FFFFF8007C0078003C0038003C001800780018007800080078000800780008007800080078 080800F0100000F0100000F0100000F0300000FFF00000F0700001E0200001E0200001E0200001 E0200001E0000801E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0 078007C0FFFFFF80>29 31 2 0 31]69 D<07FFFFF8007C0078003C0038003C00180078001800 7800080078000800780008007800080078000800F0100000F0100000F0100000F0300000F07000 00FFF00001E0600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003C000 0003C0000003C0000003C000000780000007C00000FFFE0000>29 31 2 0 30]70 D<07FFE0007C00003C00003C0000780000780000780000780000780000780000F00000 F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003 C00003C00003C00003C00007800007C000FFFC00>19 31 1 0 16]73 D<07FFF000007E000000 3C0000003C000000780000007800000078000000780000007800000078000000F0000000F00000 00F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0000001E0008001E001 0003C0010003C0010003C0030003C0020003C0060003C0060007801E0007807C00FFFFFC00>25 31 2 0 28]76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F00000 4E0002F000004E0004F000004E0004F000004E0008F000004E0008F00000870011E00000870011 E00000870021E00000870021E00000870041E00000838041E00001038083C00001038083C00001 038103C00001038203C0000101C203C0000101C403C0000201C40780000201C80780000201C807 80000201D00780000200F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF800> 42 31 2 0 42]77 D<07FC01FFC0003E003E00003E001800003E001800004F001000004F001000 004780100000478010000043C010000043C010000083C020000081E020000081E020000080F020 000080F020000080782000010078400001007C400001003C400001003C400001001E400001001E 400002000F800002000F800002000F800002000780000200078000060003800006000300000F00 010000FFE0010000>34 31 2 0 34]78 D<0003F800001E0E000038070000E0038001C001C003 C001E0078000E00F0000F00F0000F01E0000F01E0000F83E0000F83C0000F87C0000F87C0000F8 7C0000F87C0000F8F80001F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007 C07C0007803C000F003C001E001E001C000E0038000700F00003C3C00000FE0000>29 33 5 1 35]79 D<07FFFF00007C03C0003C01E0003C00F0007800F0007800F8007800F8007800 F8007800F8007800F000F001F000F001E000F003C000F0078000F00F0000FFF80001E0000001E0 000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C0000003 C000000780000007C00000FFFC0000>29 31 2 0 31]80 D<003F040060CC01803C03801C0300 1C0700180600080E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007F E00007E00001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E00380F803 00C60C0081F800>22 33 3 1 25]83 D<3FFFFFF03C0780F03007803060078030400F0010400F 0010C00F0010800F0010800F0010800F0010001E0000001E0000001E0000001E0000001E000000 1E0000003C0000003C0000003C0000003C0000003C0000003C0000007800000078000000780000 00780000007800000078000000F0000001F800007FFFE000>28 31 6 0 33]84 D29 32 7 1 34]85 D32 31 6 0 34]89 D E /ff 10 58 df<1F00318060C04040C060C060C060C060C060C060C060C060 404060C031801F00>11 16 1 0 15]48 D<0C003C00CC000C000C000C000C000C000C000C000C 000C000C000C000C00FF80>9 16 2 0 15]49 D<1F00618040C08060C0600060006000C0018003 0006000C00102020207FC0FFC0>11 16 1 0 15]50 D<1F00218060C060C000C0008001800F00 008000400060C060C060804060801F00>11 16 1 0 15]51 D<0300030007000F000B00130033 0023004300C300FFE003000300030003001FE0>11 16 1 0 15]52 D<20803F002C0020002000 20002F0030802040006000600060C06080C061801F00>11 16 1 0 15]53 D<0780184030C060C06000C000CF00F080E040C060C060C060406060C030801F00>11 16 1 0 15]54 D<40007FE07FC08080808001000200040004000C000800080018001800180018 001800>11 17 2 0 15]55 D<1F00318060C060C060C071803F000F00338061C0C060C060C060 404060801F00>11 16 1 0 15]56 D<1F00318060C0C040C060C060C06040E021E01E60006000 4060C0608043003E00>11 16 1 0 15]57 D E /fg 23 122 df5 5 6 0 17]46 D<00180000380000F80007F800FFF800FFF800F8F80000F80000F80000F80000F8 0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8 0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8 007FFFF07FFFF07FFFF0>20 40 5 0 30]49 D<00FE0003FFC007FFE00FFFF01F03F83C00FC38 007E78003E70003EF0001FF0001F60001F20001F00001F00001F00001F00003E00003E00007C00 007C0000F80001F00001E00003C0000780000F00001E00003C0000780000F00001E00003C00007 80000F00001E00003C00007FFFFF7FFFFF7FFFFF7FFFFF>24 40 2 0 30]50 D<007F000001FFC00007FFF0000FFFF8001FC1F8003E007C003C003E0078003E0038003E001000 3E0000003E0000003E0000003C0000007C000000FC000001F8000007F00000FFE00000FFC00000 FFE00000FFF0000001FC0000007C0000003E0000001F0000001F0000000F8000000F8000000F80 00000F8000000F8040000F8060001F00F0001F00F8003F007E007E003F81FC001FFFF8000FFFF0 0003FFE000007F0000>25 41 2 1 30]51 D<0001FF00000FFFE0003FFFF8007FFFF800FE01F8 01F8003003F0001007C000000F8000001F8000001F0000003E0000003E0000007E0000007C0000 007C0000007C000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800 0000F8000000F80000007C0000007C0000007C0000007E0000003E0000003E0000001F0000001F 8000000F80000007C0000003F0000401F8001C00FE00FC007FFFFC003FFFF8000FFFE00001FF00 >30 44 4 1 38]67 D26 42 5 0 34]70 D5 42 6 0 17]73 D31 42 5 0 39]82 D<007FC00001FFF80007FFFE000FFFFF001FC07F003F000F007E0006007C0000007C00 0000F8000000F8000000F8000000F8000000F8000000FC0000007E0000007F0000003F8000001F F800000FFF800007FFE00003FFF80000FFFC00000FFE000000FF0000003F0000001F8000000F80 00000FC0000007C0000007C0000007C0000007C0000007C0000007C000000F8060000F80F0001F 00FC003F00FF80FE007FFFFC001FFFF80007FFE00000FF8000>26 44 3 1 33]83 D<01FE000FFF803FFFC03FFFE03C03F03001F00001F80000F80000F80000F80000F800 00F8007FF807FFF81FFFF83FE0F87F00F8FC00F8F800F8F800F8F800F8FC01F87E07F87FFFF83F FFF81FFCF80FE0F8>21 27 2 0 29]97 D23 42 5 0 31]98 D<007FC001FFF007FFFC0FFFFC1FC07C1F00083E00007C00007C00007C0000F80000 F80000F80000F80000F80000F80000F800007C00007C00007E00003E00001F000C1FC07C0FFFFC 07FFFC01FFF0007F80>22 27 2 0 27]99 D<00003E00003E00003E00003E00003E00003E0000 3E00003E00003E00003E00003E00003E00003E00003E00003E00FC3E03FF3E07FFFE0FFFFE1FC1 FE3F007E3E003E7C003E7C003EFC003EF8003EF8003EF8003EF8003EF8003EF8003EF8003EFC00 3E7C003E7C003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E>23 42 2 0 31]100 D<007E0003FF8007FFC00FFFE01F83F03F00F03E00787C00787C003878003CFF FFFCFFFFFCFFFFFCFFFFFCF80000F80000F800007800007C00007C00003E00003F000C1FC07C0F FFFC07FFFC01FFF0007F80>22 27 2 0 27]101 D5 42 4 0 14]105 D5 42 4 0 14]108 D20 27 5 0 31]110 D<007F000001FFC00007FFF000 0FFFF8001FC1FC003F007E003E003E007C001F007C001F0078000F00F8000F80F8000F80F8000F 80F8000F80F8000F80F8000F80F8000F807C001F007C001F007E003F003E003E003F007E001FC1 FC000FFFF80007FFF00001FFC000007F0000>25 27 2 0 30]111 D13 27 5 0 20]114 D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000F80000F8 0000FC00007F80007FF8003FFE001FFF0007FF8000FFC0000FE00007E00003E00003E04003E0E0 07E0FC0FC0FFFFC07FFF801FFE0003F800>19 27 2 0 23]115 D<07C00007C00007C00007C000 07C00007C00007C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C00007C00007C00007C000 07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C04007E1C0 03FFE003FFE001FF8000FC00>19 34 1 0 22]116 D20 27 5 0 31]117 D25 39 1 12 28]121 D E /fh 14 118 df39 71 3 0 45]73 D<00007FF00007000007FFFF000F00001FFFFFC01F00007FFFFFF03F0000FFFF FFFC7F0003FFC00FFEFF0007FE0000FFFF0007FC00003FFF000FF000001FFF001FF0000007FF00 1FE0000003FF003FE0000001FF003FC0000001FF007FC0000000FF007FC00000007F007FC00000 007F00FFC00000003F00FFC00000003F00FFC00000003F00FFE00000003F00FFE00000001F00FF F00000001F00FFF80000001F00FFFC0000001F00FFFF00000000007FFFC0000000007FFFFE0000 00007FFFFFE00000003FFFFFFF0000003FFFFFFFF000001FFFFFFFFC00001FFFFFFFFF00000FFF FFFFFFC00007FFFFFFFFE00007FFFFFFFFF00003FFFFFFFFF80000FFFFFFFFFC00007FFFFFFFFE 00003FFFFFFFFE00000FFFFFFFFF000001FFFFFFFF0000003FFFFFFF80000001FFFFFF80000000 0FFFFFC000000000FFFFC0000000001FFFC0000000000FFFE00000000007FFE00000000003FFE0 7800000001FFE0F800000000FFE0F800000000FFE0F8000000007FE0F8000000007FE0F8000000 007FE0FC000000007FE0FC000000007FC0FC000000007FC0FE000000007FC0FE000000007F80FF 00000000FF80FF80000000FF80FFC0000000FF00FFE0000001FE00FFF8000003FE00FFFE000007 FC00FFFF80000FF800FFFFFC007FF000FE3FFFFFFFE000FC0FFFFFFF8000F803FFFFFF0000F000 7FFFF80000E00003FFC00000>51 73 7 1 66]83 D<0007FFFC000000007FFFFFC0000001FFFF FFF8000003FFFFFFFE000007FE001FFF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF000 0FFF80007FF0000FFF80007FF8000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE0000 3FFC0000F800003FFC00000000003FFC00000000003FFC00000000003FFC00000000003FFC0000 0007FFFFFC000000FFFFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003F FC0007FFC0003FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF8 00003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC 00FFF000007FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CFFF000FFFC0 3F8FFFF807FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF80007FF8>54 46 3 0 58]97 D<007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC000000000 00FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC0000000000001FFC0000000 000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000 00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000 0000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0 000000000001FFC0000000000001FFC0000000000001FFC00FFC00000001FFC07FFFC0000001FF C3FFFFF0000001FFCFFFFFFC000001FFDFF00FFF000001FFFF8003FF800001FFFE0001FFC00001 FFF800007FE00001FFF000007FF00001FFE000003FF80001FFE000001FFC0001FFE000001FFC00 01FFE000001FFE0001FFE000001FFE0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF 0001FFE000000FFF0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F FF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000 0FFF8001FFE000000FFF8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000 001FFE0001FFE000001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003FF80001FFF0 00003FF80001FFF800007FF00001FFFC0000FFE00001FFFE0001FFC00001FFBF0007FF800001FF 1FE01FFE000001FE0FFFFFFC000001FC03FFFFF0000001F800FFFF80000001F0001FF8000000> 57 72 4 0 66]98 D<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00007FFC07FF00 00FFE001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01FFE00000FF81FFC00 000FF83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7FF8000007FE7FF8000007FE FFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF800 000000FFF800000000FFF800000000FFF8000000007FF8000000007FF8000000007FFC00000000 3FFC000000003FFC000000003FFC0000001C1FFE0000003E0FFE0000003E07FF0000007E07FF00 0000FC03FF800001F801FFC00003F0007FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE00 0000FFFFF80000000FFF8000>47 46 3 0 54]101 D<00FC0001FE0003FF0007FF800FFFC01FFF E01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC007FF8003FF0001FE0000FC000000000000000000 00000000000000000000000000000000000000000000000000007FC0FFFFC0FFFFC0FFFFC0FFFF C0FFFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFF FFFFFFFFFFFFFF>24 73 4 0 32]105 D<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFF C00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80>25 72 4 0 32]108 D<007FC001FFC00000FFE00000FFFFC00FFFF80007FFFC0000FFFFC03FFFFE00 1FFFFF0000FFFFC0FFFFFF007FFFFF8000FFFFC1FC07FF80FE03FFC000FFFFC3E003FFC1F001FF E00003FFC7C001FFC3E000FFE00001FFCF0001FFE78000FFF00001FFDE0000FFEF00007FF00001 FFDC0000FFEE00007FF00001FFFC0000FFFE00007FF80001FFF80000FFFC00007FF80001FFF000 00FFF800007FF80001FFF00000FFF800007FF80001FFF00000FFF800007FF80001FFE00000FFF0 00007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007F F80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001 FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE000 00FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF0 00007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007F F80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001 FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE000 00FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF800FFFFFFC07FFFFF E03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFF FFF0FFFFFFC07FFFFFE03FFFFFF0>92 46 4 0 99]109 D<007FC001FFC00000FFFFC00FFFF800 00FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC07FF8000FFFFC3E003FFC00003FFC7C001FF C00001FFCF0001FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FFF80000 FFF00001FFF00000FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FFF00001FFE000 00FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000 01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 00FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFF FFE0>59 46 4 0 66]110 D<00000FFF0000000000FFFFF000000007FFFFFE0000001FFFFFFF80 00003FFC03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE000007FE000FFE00 0007FF000FFC000003FF001FFC000003FF803FFC000003FFC03FF8000001FFC03FF8000001FFC0 7FF8000001FFE07FF8000001FFE07FF8000001FFE0FFF8000001FFF0FFF8000001FFF0FFF80000 01FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FF F8000001FFF0FFF8000001FFF07FF8000001FFE07FF8000001FFE07FF8000001FFE07FF8000001 FFE03FFC000003FFC03FFC000003FFC01FFC000003FF801FFE000007FF800FFE000007FF0007FF 00000FFE0003FF80001FFC0001FFC0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF80 000007FFFFFE00000000FFFFF0000000000FFF000000>52 46 3 0 59]111 D<007FC00FFC000000FFFFC07FFFC00000FFFFC3FFFFF00000FFFFCFFFFFFC0000FFFFDFF01FFF 0000FFFFFF8007FF800003FFFE0001FFC00001FFF80000FFE00001FFF00000FFF00001FFE00000 7FF80001FFE000003FFC0001FFE000003FFC0001FFE000003FFE0001FFE000001FFE0001FFE000 001FFF0001FFE000001FFF0001FFE000001FFF0001FFE000000FFF0001FFE000000FFF8001FFE0 00000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FF E000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF0001 FFE000001FFF0001FFE000001FFF0001FFE000001FFE0001FFE000001FFE0001FFE000003FFC00 01FFE000003FFC0001FFE000007FF80001FFF000007FF80001FFF80000FFF00001FFFC0001FFE0 0001FFFE0003FFC00001FFFF0007FF800001FFFFE03FFE000001FFEFFFFFFC000001FFE3FFFFF0 000001FFE0FFFF80000001FFE01FF800000001FFE0000000000001FFE0000000000001FFE00000 00000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000 0000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0 000000000001FFE0000000000001FFE00000000000FFFFFFC000000000FFFFFFC000000000FFFF FFC000000000FFFFFFC000000000FFFFFFC000000000>57 66 4 20 66]112 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01FC0001FE03F80000FE03F0000 07E07F000003E07F000003E0FF000003E0FF000003E0FF800003E0FFC0000000FFF0000000FFFE 000000FFFFF800007FFFFFC0007FFFFFF0003FFFFFFC001FFFFFFF000FFFFFFF8007FFFFFFC003 FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF800001FFFF8000000FFFC0000001FFC7800000FFC F8000007FCF8000003FCFC000003FCFC000003FCFE000003F8FE000003F8FF000003F8FF800007 F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF8000>38 46 4 0 47]115 D<0001F000000001F000000001F000000001F000000001F000000001F0000000 03F000000003F000000003F000000007F000000007F000000007F00000000FF00000000FF00000 001FF00000003FF00000003FF00000007FF0000001FFF0000003FFF000000FFFFFFFC0FFFFFFFF C0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF0000000FFF0000000FFF0000000FFF0000000FFF0 000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000 FFF0000000FFF0000000FFF0000000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F0 00FFF001F000FFF001F000FFF001F000FFF001F0007FF001E0007FF803E0003FF803E0003FFC07 C0001FFE0F80000FFFFF800007FFFE000001FFFC0000001FF000>36 66 2 0 46]116 D<007FE000003FF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000 FFFFE0007FFFF000FFFFE0007FFFF00003FFE00001FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000 FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE000 00FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF E00001FFF00001FFE00001FFF00001FFE00001FFF00001FFE00003FFF00000FFE00007FFF00000 FFE0000F7FF000007FE0001F7FF000007FF0003E7FF800003FFC00FC7FFFE0001FFFFFF87FFFE0 0007FFFFE07FFFE00001FFFF807FFFE000003FFE007FFFE0>59 46 4 0 66]117 D E /fi 8 117 df<00001E000000003E00000000FE00000003FE0000003FFE0000FFFF FE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE000000 0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000 000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00 00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE 0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00007F FFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0>34 56 7 0 49]49 D<0003FF800180001FFFF0 0380007FFFFC078001FFFFFF0F8003FE00FF9F8007F0000FFF800FE00003FF801FC00001FF803F 8000007F803F8000007F807F0000003F807F0000001F807F0000001F80FF0000000F80FF000000 0F80FF0000000F80FF8000000780FF8000000780FFC000000780FFE000000780FFF8000000007F FE000000007FFFF00000007FFFFF0000003FFFFFF800003FFFFFFF00001FFFFFFFC0000FFFFFFF F00007FFFFFFF80003FFFFFFFC0001FFFFFFFE00007FFFFFFF00003FFFFFFF800007FFFFFF8000 007FFFFFC0000007FFFFC00000003FFFE000000003FFE000000000FFF0000000007FF000000000 3FF0700000001FF0F00000001FF0F00000001FF0F00000000FF0F00000000FF0F80000000FF0F8 0000000FE0F80000000FE0FC0000000FE0FC0000001FC0FE0000001FC0FF0000001F80FFC00000 3F80FFF000007F00FFFC0001FE00FCFFC007FC00F87FFFFFF800F01FFFFFE000E003FFFF8000C0 003FFC0000>44 61 5 1 55]83 D<0000FFF000000FFFFF00003FFFFF8000FFC01FC001FF003F E003FC007FF007FC007FF00FF8007FF01FF0007FF01FF0003FE03FF0003FE03FF0001FC07FE000 07007FE00000007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 000000FFE0000000FFE00000007FE00000007FE00000007FF00000003FF00000003FF00000001F F00000781FF80000780FF80000F007FC0000F003FE0001E001FF8007C000FFE01F80003FFFFF00 000FFFFC000000FFC000>37 38 3 0 44]99 D<0001FFC000000FFFF800003FFFFE0000FF80FF 0001FE003F8007FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83FF00007F87FE000 07F87FE00003FC7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0 000000FFE0000000FFE0000000FFE00000007FE00000007FE00000007FE00000003FE00000003F F000003C1FF000003C1FF000003C0FF800007807FC0000F803FE0001F001FF0007E000FFC03FC0 003FFFFF000007FFFC000000FFE000>38 38 3 0 45]101 D<01F00007FC000FFE000FFE001FFF 001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0000000000000000000000000000000 0000000000000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 00FFFFF8FFFFF8FFFFF8FFFFF8>21 61 3 0 27]105 D<00FE007FC000FFFE01FFF800FFFE07FF FC00FFFE0F03FE00FFFE1C01FF0007FE3001FF8003FE6000FF8003FEE000FFC003FEC000FFC003 FF8000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000 FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003 FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000 FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFF FFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF>48 38 4 0 55]110 D<0000FFC00000000FFFFC0000 003FFFFF000000FFC0FFC00001FE001FE00007FC000FF80007F80007F8000FF00003FC001FF000 03FE003FF00003FF003FE00001FF007FE00001FF807FE00001FF807FE00001FF807FE00001FF80 FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE000 01FFC0FFE00001FFC0FFE00001FFC07FE00001FF807FE00001FF807FE00001FF803FF00003FF00 3FF00003FF001FF00003FE000FF80007FC000FF80007FC0007FC000FF80003FE001FF00000FFC0 FFC000003FFFFF0000000FFFFC00000001FFE00000>42 38 3 0 49]111 D<0007800000078000000780000007800000078000000F8000000F8000000F8000000F8000001F 8000001F8000003F8000003F8000007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FF FFFFF0FFFFFFF001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000 01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF80 0001FF800001FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF 807800FFC078007FC070003FE0E0001FFFC00007FF800001FF00>30 55 2 0 38]116 D E /fj 66 125 df<001F83E000F06E3001C078780380F8780300F03007007000 070070000700700007007000070070000700700007007000FFFFFF800700700007007000070070 000700700007007000070070000700700007007000070070000700700007007000070070000700 700007007000070070000700700007007000070070007FE3FF00>29 32 0 0 27]11 D<003F0000E0C001C0C00381E00701E00701E0070000070000070000070000070000 070000FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0 0700E00700E00700E00700E00700E00700E00700E07FC3FE>23 32 0 0 25]12 D<001F81F80000F04F040001C07C06000380F80F000300F00F000700F00F000700700000 07007000000700700000070070000007007000000700700000FFFFFFFF00070070070007007007 000700700700070070070007007007000700700700070070070007007007000700700700070070 070007007007000700700700070070070007007007000700700700070070070007007007000700 7007007FE3FE3FF0>36 32 0 0 38]14 D<7038F87CFC7EFC7E743A0402040204020804080410 08100820104020>15 14 2 -18 23]34 D<007800000084000001840000030200000702000007 0200000702000007020000070400000704000007080000070800000310000003A00FFC03C003E0 038001C001C0008001C0010003E0010004E0020008F00200187004003078080070380800701C10 00F01E1000F00E2000F0074000F003C0087003C0087801C010380670301C18386007E00F80>30 34 2 1 35]38 D<70F8FCFC74040404080810102040>6 14 4 -18 13]39 D<0020004000800100020006000C000C00180018003000300030007000600060006000E000E000 E000E000E000E000E000E000E000E000E000E0006000600060007000300030003000180018000C 000C00060002000100008000400020>11 46 3 12 18]40 D<800040002000100008000C000600 06000300030001800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000 E000E000E000C000C000C001C001800180018003000300060006000C0008001000200040008000 >11 46 3 12 18]41 D<70F8FCFC74040404080810102040>6 14 4 9 13]44 D10 2 1 -9 15]45 D<70F8F8F870>5 5 4 0 13]46 D<0001000300030006000600 06000C000C000C00180018001800300030003000600060006000C000C000C00180018001800300 030003000600060006000C000C000C00180018001800300030003000600060006000C000C000C0 00>16 45 3 11 23]47 D<018003800F80F3800380038003800380038003800380038003800380 0380038003800380038003800380038003800380038003800380038007C0FFFE>15 30 4 0 23]49 D<03F0000C1C00100E00200700400780800780F007C0F803C0F803C0F803C020 07C00007C0000780000780000F00000E00001C0000380000700000600000C00001800003000006 00400C00401800401000803FFF807FFF80FFFF80>18 30 2 0 23]50 D<03F0000C1C00100E00 200F00780F80780780780780380F80000F80000F00000F00000E00001C0000380003F000003C00 000E00000F000007800007800007C02007C0F807C0F807C0F807C0F00780400780400F00200E00 1C3C0003F000>18 31 2 1 23]51 D<000600000600000E00000E00001E00002E00002E00004E 00008E00008E00010E00020E00020E00040E00080E00080E00100E00200E00200E00400E00C00E 00FFFFF0000E00000E00000E00000E00000E00000E00000E0000FFE0>20 30 1 0 23]52 D<1803001FFE001FFC001FF8001FE00010000010000010000010000010000010 000011F000161C00180E001007001007800003800003800003C00003C00003C07003C0F003C0F0 03C0E00380400380400700200600100E000C380003E000>18 31 2 1 23]53 D<007C000182000701000E03800C07801C0780380300380000780000700000700000F1F000F21C 00F40600F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C07003803803 803807001807000C0E00061C0001F000>18 31 2 1 23]54 D<4000007FFFC07FFF807FFF8040 010080020080020080040000080000080000100000200000200000400000400000C00000C00001 C00001800003800003800003800003800007800007800007800007800007800007800007800003 0000>18 31 3 1 23]55 D<70F8F8F8700000000000000000000070F0F8F87808080810101020 2040>5 29 4 9 13]59 D<000100000003800000038000000380000007C0000007C0000007C000 0009E0000009E0000009E0000010F0000010F0000010F00000207800002078000020780000403C 0000403C0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F00020007800200 078002000780040003C00E0003C01F0007E0FFC03FFE>31 32 1 0 34]65 D26 31 2 0 32]66 D<000FC040007030C001C009C0038005C0070003C00E 0001C01E0000C01C0000C03C0000C07C0000407C00004078000040F8000000F8000000F8000000 F8000000F8000000F8000000F8000000F8000000F8000000780000007C0000407C0000403C0000 401C0000401E0000800E000080070001000380020001C0040000703800000FC000>26 33 3 1 33]67 D29 31 2 0 35]68 D27 31 2 0 31]69 D25 31 2 0 30]70 D<000FE0200078186000E004E00380 02E0070001E00F0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8 000000F8000000F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E0 3C0001E03C0001E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820000FE0 00>30 33 3 1 36]71 D29 31 2 0 34]72 D14 31 1 0 16]73 D23 31 2 0 28]76 D37 31 2 0 42]77 D29 31 2 0 34]78 D<001F800000F0F00001C0380007801E000F000F000E0007001E0007803C0003C03C0003 C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F800 01F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03C0003C01E0007800E0007000F 000F0007801E0001C0380000F0F000001F8000>28 33 3 1 35]79 D25 31 2 0 31]80 D30 32 2 1 33]82 D<07E0800C198010078030 0380600180600180E00180E00080E00080E00080F00000F000007800007F00003FF0001FFC000F FE0003FF00001F800007800003C00003C00001C08001C08001C08001C08001C0C00180C00380E0 0300F00600CE0C0081F800>18 33 3 1 25]83 D<7FFFFFE0780F01E0600F0060400F0020400F 0020C00F0030800F0010800F0010800F0010800F0010000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000001F800007FFFE00>28 31 2 0 33]84 D29 32 2 1 34]85 D<08041008201020104020 4020804080408040B85CFC7EFC7E7C3E381C>15 14 5 -18 23]92 D<1FE00030300078180078 1C00300E00000E00000E00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E10F0 1E10781E103867200F83C0>20 20 2 0 23]97 D<0E0000FE00000E00000E00000E00000E0000 0E00000E00000E00000E00000E00000E00000E3E000EC3800F01C00F00E00E00E00E00700E0070 0E00780E00780E00780E00780E00780E00780E00700E00700E00E00F00E00D01C00CC300083E00 >21 32 1 0 25]98 D<03F80E0C1C1E381E380C70007000F000F000F000F000F000F000700070 00380138011C020E0C03F0>16 20 2 0 20]99 D<000380003F80000380000380000380000380 00038000038000038000038000038000038003E380061B801C0780380380380380700380700380 F00380F00380F00380F00380F00380F003807003807003803803803807801C07800E1B8003E3F8 >21 32 2 0 25]100 D<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF 80F00000F00000F000007000007000003800801800800C010007060001F800>17 20 1 0 20]101 D<007C00C6018F038F07060700070007000700070007000700FFF00700070007 000700070007000700070007000700070007000700070007000700070007007FF0>16 32 0 0 14]102 D<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F0038 0E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFFC03001E0600070C0 0030C00030C00030C000306000603000C01C038003FC00>20 31 1 10 23]103 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E 000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 32 1 0 25]104 D<1C003E003E003E001C00 0000000000000000000000000E007E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E00FFC0>10 31 0 0 12]105 D<00E001F001F001F000E0000000000000 000000000000007007F000F0007000700070007000700070007000700070007000700070007000 7000700070007000700070007000706070F060F0C061803F00>12 40 -2 9 14]106 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C00 0E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF8>21 32 1 0 24]107 D<0E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0>11 32 0 0 12]108 D<0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E 00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00 0E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE0>35 20 1 0 38]109 D<0E3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 20 1 0 25]110 D<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F0 00F0F000F0F000F07000E07000E03801C03801C01C0380070E0001F800>20 20 1 0 23]111 D<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00780E00780E 00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E00000E 00000E00000E00000E00000E0000FFE000>21 29 1 9 25]112 D<03E0800619801C05803C0780 380380780380700380F00380F00380F00380F00380F00380F00380700380780380380380380780 1C0B800E138003E380000380000380000380000380000380000380000380000380003FF8>21 29 2 9 24]113 D<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E 000E000E000E00FFE0>15 20 1 0 18]114 D<1F9030704030C010C010C010E00078007F803FE0 0FF00070803880188018C018C018E030D0608F80>13 20 2 0 18]115 D<020002000200060006 000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E08 0E080610031001E0>13 28 1 0 18]116 D<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC >22 20 1 0 25]117 D21 20 1 0 24]118 D30 20 1 0 33]119 D<7FC3FC0F01E00701C007018003810001C20000 E40000EC00007800003800003C00007C00004E000087000107000303800201C00601E01E01E0FF 07FE>23 20 0 0 24]120 D21 29 1 9 24]121 D<3FFF380E200E201C40384078407000E001E001C00380078007010E011E011C0338027006700E FFFE>16 20 1 0 20]122 D44 1 0 -12 45]124 D E /fk 1 64 df<07F8001FFE00381F80780F80FC0FC0FC0FC0FC0FC0780FC0301F80001F00003E00 007C0000700000E00000E00000C00000C00000C00000C00000C00000C000000000000000000000 00000001C00003E00007F00007F00007F00003E00001C000>18 32 3 0 25]63 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300 %%Feature: *ManualFeed False TeXDict begin @letter %%EndSetup %%Page: 1 1 bop 75 362 a fi(Section)35 b(1)75 576 y fh(Initial)43 b(Implemen)m(tation)f (Subset)75 823 y fg(1.1)59 b(Intro)r(duction)75 936 y fj(This)17 b(c)o(hapter)f(de\014nes)h(the)g(minimal)h(subset)e(of)g(MPI)g(for)g(initial) i(implemen)o(tation.)25 b(This)17 b(subset)f(is)75 992 y(b)q(eing)c (de\014ned)h(so)d(that)g(consisten)o(t)i(implemen)o(tations)g(can)f(app)q (ear)g(more)g(rapidly)l(.)20 b(It)11 b(w)o(as)f(recognized)75 1049 y(early)17 b(in)h(the)f(pro)q(cess)g(that)f(MPI)h(needed)h(to)e(app)q (ear)h(as)f(quic)o(kly)i(as)f(p)q(ossible)h(and)f(practical.)26 b(The)75 1105 y(creation)16 b(of)f(a)g(subset)h(will)h(hop)q(efully)g(allo)o (w)f(users)g(earlier)g(access)g(to)e(the)i(standard)f(and)h(still)h(allo)o(w) 75 1161 y(for)e(the)g(writing)h(of)e(p)q(ortable)i(message)f(passing)g(co)q (des.)166 1224 y(This)20 b(subset)g(should)h(not)e(in)i(an)o(y)e(w)o(a)o(y)g (b)q(e)h(construed)g(as)f(a)h(limitation)h(on)e(MPI)h(implemen-)75 1280 y(tations.)35 b(It)20 b(is)h(strictly)g(the)g(minim)o(um)g(necessary)g (to)e(ha)o(v)o(e)h(an)h(initial)h(MPI)e(subset)h(conforming)75 1337 y(implemen)o(tation.)28 b(It)18 b(is)g(hop)q(ed)g(that)f(an)g (o\016cially)i(sanctioned)g(subset)e(will)i(encourage)f(and)g(allo)o(w)75 1393 y(implemen)o(tors)c(to)e(in)o(tro)q(duce)j(MPI)e(in)h(a)e(more)h(timely) h(fashion.)20 b(It)13 b(should)h(b)q(e)g(noted,)f(ho)o(w)o(ev)o(er,)g(that)75 1450 y(implemen)o(tation)20 b(of)e(the)h(subset)g(do)q(es)g(not)f(mak)o(e)h (an)f(implemen)o(tation)i(conform)e(with)h(MPI.)g(The)75 1506 y(subset)g(is)g(only)h(a)e(p)q(oten)o(tial)i(\014rst)e(step)h(in)h(the)f(pro) q(cess.)31 b(All)20 b(implemen)o(tations)g(m)o(ust)f(ultimately)75 1563 y(conform)14 b(to)h(the)g(en)o(tire)g(standard;)g(implemen)o(tations)h (are)f(encouraged)g(to)f(do)h(the)g(full)i(standard)d(as)75 1619 y(rapidly)i(as)f(p)q(ossible.)166 1681 y(The)22 b(subset)g(presen)o(ted) g(is)g(consisten)o(t)g(with)g(the)g(complete)g(MPI)g(standard.)39 b(This)22 b(w)o(as)f(an)75 1738 y(imp)q(ortan)o(t)10 b(goal)g(so)g(the)g (additional)i(MPI)f(features)f(could)h(b)q(e)g(added)g(without)f(c)o(hanging) h(an)o(y)f(previous)75 1794 y(functionalit)o(y)k(from)e(the)h(user's)g(p)q (ersp)q(ectiv)o(e.)20 b(Th)o(us,)13 b(users)g(can)g(b)q(e)g(assured)g(that)f (programs)g(written)75 1851 y(no)o(w)f(for)h(the)g(subset)g(will)h(run)f (without)g(mo)q(di\014cation)h(under)g(the)f(full)h(MPI)f(standard.)18 b(F)l(urthermore,)75 1907 y(using)e(additional)g(features)f(of)f(the)i(full)g (MPI)f(standard)f(in)i(the)f(future)g(will)i(not)e(require)h(c)o(hanges)f(to) 75 1964 y(co)q(de)e(already)f(written.)19 b(This)13 b(requires)g(that)e(the)i (MPI)f(functions)h(ha)o(v)o(e)f(their)g(full)i(calling)g(argumen)o(ts)75 2020 y(in)19 b(the)f(subset.)30 b(T)l(o)18 b(ac)o(hiev)o(e)g(this)h(goal,)g (the)f(subset)g(will)i(limit)g(access)e(to)g(full)i(MPI)e(functionalit)o(y)75 2077 y(through)h(complete)h(elimination)i(of)d(functions)h(or)f(limitations)h (on)g(the)f(creation)h(mec)o(hanisms)g(for)75 2133 y(certain)j(MPI)f(input)i (argumen)o(ts.)41 b(An)o(y)22 b(argumen)o(t)g(capable)i(of)e(b)q(eing)h (constructed)g(within)h(the)75 2190 y(subset)e(can)g(b)q(e)h(used)f(as)g(an)g (argumen)o(t)f(to)g(a)h(subset)g(function)h(where)f(it)g(w)o(ould)g(b)q(e)h (allo)o(w)o(ed)f(in)75 2246 y(the)e(full)h(standard.)34 b(F)l(or)19 b(example,)i(an)o(y)f(comm)o(unicator)f(that)g(can)h(b)q(e)h(created)f(with)g (the)g(subset)75 2302 y(is)h(an)f(allo)o(w)o(ed)g(argumen)o(t)g(in)h(an)o(y)f (subset)g(function)h(where)f(a)g(comm)o(unicator)g(is)h(an)f(appropriate)75 2359 y(argumen)o(t.)36 b(Ho)o(w)o(ev)o(er,)21 b(some)g(of)f(the)h(more)g (complex)g(mec)o(hanisms)h(for)e(comm)o(unicator)h(creation)75 2415 y(ha)o(v)o(e)15 b(b)q(een)h(remo)o(v)o(ed)f(from)f(the)i(subset.)166 2478 y(Users)h(ma)o(y)g(utilize)i(MPI)e(features)g(outside)h(this)g(subset)f (that)g(are)f(o\013ered)h(b)o(y)h(v)m(arious)f(imple-)75 2534 y(men)o(tors.)h(Ho)o(w)o(ev)o(er,)11 b(p)q(eople)h(who)f(require)i(p)q (ortabilit)o(y)f(during)g(the)g(early)f(dev)o(elopmen)o(t)h(of)f(MPI)h(ma)o (y)75 2591 y(exp)q(erience)21 b(some)d(di\016culties)j(un)o(til)f(later)f(in) h(the)f(dev)o(elopmen)o(t)g(pro)q(cess.)31 b(This)19 b(subset)g(is)h(mean)o (t)75 2647 y(to)g(o\013er)g(the)g(opp)q(ortunit)o(y)h(for)f(a)g(greater)f (lev)o(el)j(of)e(p)q(ortabilit)o(y)i(un)o(til)f(the)g(full)h(MPI)e(standard)g (is)75 2704 y(implemen)o(ted)d(on)e(m)o(ultiple)i(platforms.)-32 46 y ff(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 2 2 bop 75 -100 a fj(2)661 b fe(SECTION)16 b(1.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)75 45 y fg(1.2)59 b(Criteria)21 b(and)e(Rational)75 149 y fj(Ha)o(ving)g(the)g(subset)g(b)q(e)h(consisten)o (t)f(with)g(the)g(en)o(tire)g(MPI)g(standard)g(w)o(as)f(considered)i (critical)h(to)75 205 y(the)16 b(e\013ort.)22 b(In)16 b(addition)i(to)d (this,)h(there)h(w)o(ere)e(man)o(y)h(p)q(ossible)i(criteria)f(to)e(use)h(in)h (determining)h(the)75 262 y(elemen)o(ts)d(of)e(MPI)h(to)f(include)j(in)f(the) f(subset.)20 b(The)14 b(main)g(criteria)h(used)f(w)o(ere)g(that)f(the)h(MPI)g (subset)75 318 y(should)131 416 y(1.)22 b(con)o(tain)13 b(routines)h(that)e (are)h(as)g(close)h(as)f(p)q(ossible)i(to)e(curren)o(t)g(standard)g(practice) h(to)f(minimize)189 473 y(the)i(e\013ort)f(to)h(p)q(ort)f(co)q(des.)131 571 y(2.)22 b(con)o(tain)15 b(as)g(man)o(y)g(new)g(and)g(imp)q(ortan)o(t)g (MPI)g(features)g(as)g(p)q(ossible.)131 669 y(3.)22 b(allo)o(w)17 b(dev)o(elop)q(ers)i(to)e(b)q(e)i(able)f(to)f(ha)o(v)o(e)g(the)h(subset)g (sho)o(w)f(up)h(as)f(rapidly)i(as)e(p)q(ossible)i(while)189 725 y(still)d(meeting)g(the)f(other)g(criteria.)166 823 y(There)i(w)o(ere)g (man)o(y)f(rationales)h(for)g(these)g(criteria.)26 b(It)17 b(w)o(as)f(recognized)i(that)e(it)h(is)h(imp)q(ossible)75 880 y(to)d(come)h(up)h(with)f(an)g(ideal)h(subset)g(and)f(compromises)g(w)o(ere)g (necessary)l(.)22 b(It)16 b(w)o(as)f(felt)i(that)e(curren)o(t)75 936 y(users)22 b(should)g(b)q(e)h(comfortable)e(in)h(migrating)g(to)f(MPI.)g (Th)o(us,)i(the)f(subset)f(should)i(con)o(tain)f(the)75 993 y(message)16 b(passing)h(elemen)o(ts)g(that)f(represen)o(t)g(common)g (practice)h(to)q(da)o(y)l(.)23 b(F)l(urthermore,)16 b(it)h(w)o(as)f(felt)75 1049 y(that)21 b(the)h(initial)i(\(and)e(later\))f(v)o(ersion)h(of)g(MPI)g (should)g(main)o(tain)h(e\016ciency)l(.)41 b(Otherwise)23 b(users)75 1106 y(could)e(su\013er)e(from)g(disenc)o(han)o(tmen)o(t)h(with)g(MPI)f(on)h (their)g(\014rst)f(usage)h(and)f(ma)o(y)g(nev)o(er)h(giv)o(e)g(the)75 1162 y(standard)12 b(a)g(second)g(try)l(.)19 b(Ha)o(ving)12 b(the)h(common)e(practice)i(routines)g(in)g(the)f(subset)h(should)g (encourage)75 1219 y(dev)o(elop)q(ers)j(to)d(optimized)j(these)f(routines)g (in)g(the)f(initial)j(v)o(ersion)e(of)f(MPI.)g(Also,)g(though)g(some)h(felt) 75 1275 y(that)20 b(the)i(p)q(ortabilit)o(y)g(o\013ered)f(b)o(y)g(the)g(MPI)g (subset)h(w)o(as)e(su\016cien)o(t)i(to)e(en)o(tice)i(users,)h(man)o(y)e(felt) 75 1332 y(that)14 b(the)g(subset)h(should)g(con)o(tain)g(some)f(new)h (features)f(o)o(v)o(er)f(and)i(ab)q(o)o(v)o(e)f(curren)o(t)g(common)g (practice)75 1388 y(as)21 b(an)h(added)g(incen)o(tiv)o(e.)40 b(The)22 b(additional)h(items)f(selected)g(w)o(ere)g(mean)o(t)f(to)g (represen)o(t)g(some)g(of)75 1444 y(the)h(signi\014can)o(t)h(new)f(features)g (of)f(MPI.)h(Balanced)h(against)f(these)g(\014rst)f(t)o(w)o(o)g(goals)h(is)g (the)g(need)75 1501 y(for)e(the)i(subset)f(to)f(sho)o(w)h(up)h(in)g(a)e (timely)i(fashion.)38 b(Th)o(us,)23 b(eac)o(h)e(feature)g(c)o(hosen)g(for)g (inclusion)75 1557 y(in)h(the)g(subset)g(w)o(as)f(deemed)h(of)f(su\016cien)o (t)h(imp)q(ortance)h(to)d(out)o(w)o(eigh)i(its)f(added)i(complexit)o(y)f(in) 75 1614 y(implemen)o(ting)c(the)f(subset.)24 b(Though)17 b(some)f(functions)h (seem)g(easy)g(to)e(implemen)o(t)j(there)f(are)f(often)75 1670 y(o)o(v)o(erlo)q(ok)o(ed)k(costs)g(in)i(testing,)g(do)q(cumen)o(tation)f(and) f(dev)o(elopmen)o(t)i(that)e(w)o(as)g(considered)i(b)q(efore)75 1727 y(a)f(feature)g(w)o(as)f(added)i(to)f(the)g(MPI)h(subset.)38 b(Inclusion)23 b(of)e(to)q(o)g(man)o(y)g(routines)g(migh)o(t)h(lead)g(to)75 1783 y(mo)q(derately)g(e\016cien)o(t)g(implemen)o(tation)h(of)e(them)h(all)g (instead)h(of)e(a)g(v)o(ery)g(e\016cien)o(t)i(and)e(p)q(ossibly)75 1840 y(more)15 b(useful)h(implemen)o(tation)h(of)d(a)h(smaller)h(subset.)75 1989 y fg(1.3)59 b(Subset)19 b(F)n(unctionalit)n(y)75 2093 y fj(The)h(sections)g(b)q(elo)o(w)g(con)o(tain)f(a)h(general)g(summary)e(and) i(sp)q(eci\014c)h(routines)f(of)f(what)g(is)h(included)75 2149 y(in/excluded)h(from)d(the)h(subset)g(for)g(eac)o(h)g(c)o(hapter.)30 b(The)19 b(general)g(requiremen)o(ts)h(of)e(eac)o(h)h(c)o(hapter)75 2206 y(also)13 b(hold)h(for)e(the)h(subset.)19 b(As)13 b(examples,)h(the)f (message)f(en)o(v)o(elop)q(e)i(in)g(subsection)g fk(??)p fj(,)e(the)h(seman)o (tics)75 2262 y(in)h(section)f fk(??)p fj(,)f(the)h(t)o(yp)q(e)g(matc)o(hing) f(in)i(section)f fk(??)19 b fj(and)13 b(the)g(comm)o(unication)g(ob)s(jects)f (in)i(subsection)75 2318 y fk(??)20 b fj(are)14 b(all)j(part)d(of)h(the)g (subset.)75 2446 y fd(1.3.1)49 b(Groups,)15 b(Contexts,)g(and)i(Communicato)o (rs)e(F)o(unctionalit)o(y)75 2534 y fj(Groups,)d(con)o(texts)f(and)h(comm)o (unicators)g(are)g(used)g(throughout)f(the)h(MPI)g(standard.)19 b(Though)12 b(these)75 2591 y(concepts)18 b(are)g(used)h(in)f(some)g(pac)o(k) m(ages)g(to)q(da)o(y)l(,)g(their)g(inclusion)j(in)d(MPI)g(represen)o(ts)g(a)g (signi\014can)o(t)75 2647 y(new)f(feature)g(o)o(v)o(er)f(what)g(is)i (generally)g(a)o(v)m(ailable)g(in)g(common)f(practice)g(to)q(da)o(y)l(.)25 b(F)l(or)16 b(these)h(reasons)75 2704 y(this)f(functionalit)o(y)g(is)g (included)i(in)e(the)f(subset.)p eop %%Page: 3 3 bop 75 -100 a fe(1.3.)34 b(SUBSET)16 b(FUNCTIONALITY)1081 b fj(3)166 45 y(Ho)o(w)o(ev)o(er,)16 b(implemen)o(tation)i(of)f(groups,)g (con)o(texts)f(and)h(comm)o(unicators)g(is)g(also)g(a)g(signi\014can)o(t)75 102 y(e\013ort.)40 b(As)23 b(a)f(compromise,)i(the)e(MPI)g(in)o(ter-comm)o (unicator)h(functionalit)o(y)g(is)g(not)f(included)j(in)75 158 y(the)19 b(subset.)33 b(Also,)20 b(the)g(cac)o(hing)g(facilit)o(y)g(is)g (not)f(included.)35 b(Finally)l(,)21 b fc(MPI)s 15 2 v 14 w(CONTEXTS)s 15 2 v 13 w(ALLOC)e fj(and)75 214 y fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 13 w(MAKE)d fj(are)h(excluded)h(from)e(the)h(subset.)24 b(This)17 b(e\013ectiv)o(ely)g(means)g(that)f(the)g(user)h(cannot)75 271 y(create)h(a)f(new)h(con)o(text.)28 b(The)18 b(user)g(can)g(still)i (manipulate)f(the)f(con)o(texts)f(pro)o(vided)i(to)e(create)h(new)75 327 y(comm)o(unicators.)h(The)d(full)g(functionalit)o(y)h(on)e(groups)g(is)h (pro)o(vided.)166 424 y(The)22 b(table)g(b)q(elo)o(w)g(con)o(tains)g(a)f (listing)i(b)o(y)f(section)g(of)f(whic)o(h)h(routines)g(from)f(the)h (\\Groups,)75 481 y(Con)o(texts,)14 b(and)h(Comm)o(unicators")f(c)o(hapter)h (are)g(included)j(and)d(excluded)j(from)c(the)h(subset.)75 597 y(Section)h(Title)332 b(Included)521 b(Excluded)75 620 y 1846 2 v 52 x fk(??)109 b fj(Prede\014ned)17 b(Comm.)56 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(ALL)415 b fj(||)661 728 y fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(HOST)661 785 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(PARENT)661 841 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(SELF)75 910 y fk(??)109 b fj(Lo)q(cal)16 b(Op)q(erations)86 b fc(MPI)s 15 2 v 14 w(GROUP)s 15 2 v 13 w(SIZE)368 b fj(||)661 967 y fc(MPI)s 15 2 v 14 w(GROUP)s 15 2 v 13 w(RANK)661 1023 y(MPI)s 15 2 v 14 w(TRANSLATE)s 15 2 v 13 w(RANKS)75 1092 y fk(??)109 b fj(Lo)q(cal)16 b(Group)177 b fc(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(SUBGROUP)272 b fj(||)280 1149 y(Constructor)142 b fc(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(EXCL)s 15 2 v 14 w(SUBGROUP)661 1205 y(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(SUBGROUP)s 15 2 v 13 w(RANGES)661 1261 y(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(SUBGROUP)s 15 2 v 13 w(EXCL)s 15 2 v 14 w(RANGES)661 1318 y(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(GROUP)s 15 2 v 14 w(UNION)661 1374 y(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(GROUP)s 15 2 v 14 w(INTERSECT)661 1431 y(MPI)s 15 2 v 14 w(LOCAL)s 15 2 v 13 w(GROUP)s 15 2 v 14 w(DIFFERENCE)661 1487 y(MPI)s 15 2 v 14 w(GROUP)s 15 2 v 13 w(FREE)661 1544 y(MPI)s 15 2 v 14 w(GROUP)s 15 2 v 13 w(DUP)75 1613 y fk(??)109 b fj(Coll.)21 b(Group)15 b(Const.)41 b fc(MPI)s 15 2 v 14 w(COLL)s 15 2 v 14 w(SUBGROUP)295 b fj(||)75 1682 y fk(??)109 b fj(Lo)q(cal)16 b(Op)q(erations)86 b fc(MPI)s 15 2 v 14 w(CONTEXTS)s 15 2 v 13 w(FREE)296 b fj(||)75 1750 y fk(??)109 b fj(Collectiv)o(e)17 b(Ops.)126 b(||)599 b fc(MPI)s 15 2 v 14 w(CONTEXTS)s 15 2 v 13 w(ALLOC)75 1819 y fk(??)109 b fj(Lo)q(cal)16 b(Comm.)j(Ops.)49 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(SIZE)391 b fj(||)661 1876 y fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(RANK)75 1945 y fk(??)109 b fj(Lo)q(cal)16 b(Const.)174 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(GROUP)367 b fj(||)661 2001 y fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(CONTEXT)661 2058 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(BIND)661 2114 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(UNBIND)661 2171 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(DUP)75 2239 y fk(??)109 b fj(Coll.)21 b(Comm.)e(Const.)g(||)599 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(MAKE)75 2308 y fk(??)109 b fj(Sync)o(hronous)177 b(||)599 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(PEER)s 15 2 v 13 w(MAKE)264 2365 y fj(In)o(ter-Comm.)830 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(NAME)s 15 2 v 13 w(MAKE)295 2421 y fj(Const.)925 b fc(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(PEER)s 15 2 v 13 w(MAKE)s 15 2 v 14 w(START)1350 2478 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(PEER)s 15 2 v 13 w(MAKE)s 15 2 v 14 w(FINISH)1350 2534 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(NAME)s 15 2 v 13 w(MAKE)s 15 2 v 14 w(START)1350 2591 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(NAME)s 15 2 v 13 w(MAKE)s 15 2 v 14 w(FINISH)1350 2647 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(STAT)1350 2704 y(MPI)s 15 2 v 14 w(COMM)s 15 2 v 14 w(SPLITL)p eop %%Page: 4 4 bop 75 -100 a fj(4)661 b fe(SECTION)16 b(1.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)75 45 y fk(??)109 b fj(F)l(unctionalit)o(y) 165 b(||)599 b fc(MPI)s 15 2 v 14 w(GET)s 15 2 v 14 w(ATTRIBUTE)1350 102 y(MPI)s 15 2 v 14 w(SET)s 15 2 v 14 w(ATTRIBUTE)1350 158 y(MPI)s 15 2 v 14 w(TEST)s 15 2 v 14 w(ATTRIBUTE)1350 214 y(MPI)s 15 2 v 14 w(DELETE)s 15 2 v 13 w(ATTRIBUTE)75 388 y fd(1.3.2)49 b(P)o(oint)16 b(to)h(P)o(oint)f(F)o(unctionalit)o(y)75 477 y fj(The)j(p)q(oin)o(t)h(to)e(p)q(oin)o(t)i(routines)f(are)g(not)g(only)h (cen)o(tral)f(to)f(MPI)h(but)h(represen)o(t)f(common)f(practice)75 534 y(to)q(da)o(y)l(.)k(As)16 b(suc)o(h,)g(the)h(ma)s(jorit)o(y)d(of)i(the)g (functionalit)o(y)h(in)g(this)g(c)o(hapter)f(is)g(included)j(in)e(the)f (subset.)75 590 y(Deriv)o(ed)g(datat)o(yp)q(es)g(represen)o(t)g(a)f (signi\014can)o(t)i(new)f(feature)g(in)h(MPI)f(and)g(is)g(include)i(in)f(the) f(subset.)75 647 y(It)d(w)o(as)g(felt)h(that)e(the)i(added)g(complexit)o(y)g (of)f(implemen)o(tation)i(w)o(as)d(out)o(w)o(eighed)i(b)o(y)f(the)g(imp)q (ortance)75 703 y(of)i(deriv)o(ed)h(datat)o(yp)q(es.)166 761 y(T)l(o)e(reduce)h(the)g(di\016cult)o(y)g(of)f(implemen)o(tation,)i(sev)o (eral)e(features)g(w)o(ere)g(left)h(out)f(of)g(the)g(subset.)75 818 y(The)j(abilit)o(y)g(to)f(test)f(for)h(m)o(ultiple)i(completions)g(of)d (messages)h(w)o(as)g(remo)o(v)o(ed.)22 b(Also,)17 b(the)f(abilit)o(y)i(to)75 874 y(cancel)e(a)e(message)f(and)i(use)g(p)q(ersisten)o(t)g(comm)o(unication) g(ob)s(jects)e(has)h(b)q(een)i(remo)o(v)o(ed.)j(Finally)l(,)d(the)75 931 y(routines)g(asso)q(ciated)f(with)h(ready)f(and)g(sync)o(hronous)g(comm)o (unication)h(mo)q(des)g(w)o(ere)f(excluded.)166 989 y(The)f(table)h(b)q(elo)o (w)g(con)o(tains)f(a)g(listing)i(b)o(y)e(section)h(of)f(whic)o(h)h(routines)f (from)g(the)g(p)q(oin)o(t)h(to)e(p)q(oin)o(t)75 1045 y(comm)o(unication)j(c)o (hapter)f(are)g(included)j(and)d(excluded)i(from)e(the)g(subset.)120 1162 y(Section)62 b(Title)400 b(Included)333 b(Excluded)75 1184 y 1630 2 v 120 1237 a fk(??)155 b fj(Basic)16 b(Send)g(Op)q(eration)63 b fc(MPI)s 15 2 v 14 w(SEND)316 b fj(||)120 1305 y fk(??)155 b fj(Message)15 b(Data)217 b(All)17 b(t)o(yp)q(es)321 b(||)120 1374 y fk(??)155 b fj(Basic)16 b(Recv)g(Op)q(eration)61 b fc(MPI)s 15 2 v 14 w(RECV)316 b fj(||)120 1443 y fk(??)155 b fj(Return)16 b(Status)213 b fc(MPI)s 15 2 v 14 w(GET)s 15 2 v 14 w(SOURCE)179 b fj(||)820 1500 y fc(MPI)s 15 2 v 14 w(GET)s 15 2 v 14 w(TAG)820 1556 y(MPI)s 15 2 v 14 w(GET)s 15 2 v 14 w(COUNT)120 1625 y fk(??)155 b fj(Comm.)19 b(Mo)q(des)202 b(Standard)319 b fc(MPI)s 15 2 v 14 w(RSEND)1321 1682 y(MPI)s 15 2 v 14 w(SSEND)120 1750 y fk(??)155 b fj(Comm.)19 b(Initiation)147 b fc(MPI)s 15 2 v 14 w(ISEND)292 b(MPI)s 15 2 v 14 w(IRSEND)820 1807 y(MPI)s 15 2 v 14 w(IRECV)g(MPI)s 15 2 v 14 w(ISSEND)120 1876 y fk(??)155 b fj(Comm.)19 b(Completion)102 b fc(MPI)s 15 2 v 14 w(WAIT)316 b fj(||)820 1932 y fc(MPI)s 15 2 v 14 w(TEST)120 2001 y fk(??)155 b fj(Multiple)17 b(Completion)83 b(||)411 b fc(MPI)s 15 2 v 14 w(WAITANY)1321 2058 y(MPI)s 15 2 v 14 w(TESTANY)1321 2114 y(MPI)s 15 2 v 14 w(WAITALL)1321 2171 y(MPI)s 15 2 v 14 w(TESTALL)120 2239 y fk(??)155 b fj(Prob)q(e)15 b(&)h(Cancel)178 b fc(MPI)s 15 2 v 14 w(PROBE)292 b(MPI)s 15 2 v 14 w(CANCEL)820 2296 y(MPI)s 15 2 v 14 w(IPROBE)268 b(MPI)s 15 2 v 14 w(TEST)s 15 2 v 13 w(CANCEL)820 2352 y(MPI)s 15 2 v 14 w(PROBE)s 15 2 v 14 w(COUNT)120 2421 y fk(??)155 b fj(P)o(ersisten)o(t)15 b(Comm.)139 b(||)411 b fc(MPI)s 15 2 v 14 w(CREATE)s 15 2 v 13 w(SEND)355 2478 y fj(Ob)s(jects)813 b fc(MPI)s 15 2 v 14 w(CREATE)s 15 2 v 13 w(RSEND)1321 2534 y(MPI)s 15 2 v 14 w(CREATE)s 15 2 v 13 w(SSEND)1321 2591 y(MPI)s 15 2 v 14 w(CREATE)s 15 2 v 13 w(RECV)1321 2647 y(MPI)s 15 2 v 14 w(START)1321 2704 y(MPI)s 15 2 v 14 w(FREE)p eop %%Page: 5 5 bop 75 -100 a fe(1.3.)34 b(SUBSET)16 b(FUNCTIONALITY)1081 b fj(5)120 45 y fk(??)155 b fj(Send-receiv)o(e)252 b fc(MPI)s 15 2 v 14 w(SENDRECV)220 b(MPI)s 15 2 v 14 w(EXCHANGE)120 114 y fk(??)155 b fj(Null)17 b(pro)q(cess)252 b fc(MPI)s 15 2 v 14 w(PROCNULL)220 b fj(||)120 183 y fk(??)155 b fj(Deriv)o(ed)16 b(Datat)o(yp)q(es)122 b fc(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(CONTIGUOUS)59 b fj(||)820 239 y fc(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(VECTOR)820 296 y(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(HVECTOR)820 352 y(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(INDEXED)820 409 y(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(HINDEXED)820 465 y(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(STRUCT)120 534 y fk(??)155 b fj(Additional)286 b fc(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(COMMIT)155 b fj(||)355 591 y(F)l(unctions)273 b fc(MPI)s 15 2 v 14 w(FREE)820 647 y(MPI)s 15 2 v 14 w(ADDRESS)820 703 y(MPI)s 15 2 v 14 w(TYPE)s 15 2 v 14 w(EXTENT)75 1000 y fd(1.3.3)49 b(Collective)17 b(Communication)g(F)o(unctionalit)o(y)75 1131 y fj(As)h(with)h(p)q(oin)o(t)g(to)f(p)q(oin)o(t)g(functionalit)o(y)l(,)j (collectiv)o(e)f(comm)o(unication)f(is)g(common)f(practice)h(to)q(da)o(y)75 1187 y(and)f(the)h(functionalit)o(y)g(is)g(generally)g(included)i(in)e(the)f (subset.)29 b(F)l(urthermore,)18 b(the)g(abilit)o(y)i(to)d(de-)75 1244 y(\014ne)h(arbitrary)e(groups)h(in)h(the)f(MPI)g(subset,)g(whic)o(h)h (are)f(then)g(asso)q(ciated)h(with)f(a)g(comm)o(unicator,)75 1300 y(allo)o(ws)k(the)g(user)f(to)g(p)q(erform)h(collectiv)o(e)h(comm)o (unication)g(op)q(erations)e(o)o(v)o(er)g(an)h(arbitrary)f(set)g(of)75 1357 y(pro)q(cesses.)32 b(This)20 b(increases)f(the)h(functionalit)o(y)g(of)f (the)g(collectiv)o(e)i(comm)o(unication)e(routines)h(o)o(v)o(er)75 1413 y(what)15 b(is)g(commonly)h(a)o(v)m(ailable)h(to)q(da)o(y)l(.)166 1493 y(T)l(o)12 b(ease)h(initial)i(implemen)o(tation,)f(the)f(user)g (de\014ned)h(reduce)g(functions)g(are)e(excluded)j(from)d(the)75 1549 y(subset.)20 b(Also,)15 b(the)h(scan)f(functions)h(are)f(excluded)i (from)d(the)h(subset.)166 1629 y(The)22 b(table)g(b)q(elo)o(w)g(con)o(tains)f (a)g(listing)i(b)o(y)f(section)g(of)f(whic)o(h)h(routines)g(from)f(the)g (collectiv)o(e)75 1686 y(comm)o(unication)16 b(c)o(hapter)f(are)g(included)j (and)d(excluded)i(from)e(the)g(subset.)120 1802 y(Section)62 b(Title)419 b(Included)197 b(Excluded)75 1824 y 1584 2 v 120 1877 a fk(??)155 b fj(Barrier)15 b(Sync)o(h.)227 b fc(MPI)s 15 2 v 14 w(BARRIER)108 b fj(||)120 1946 y fk(??)155 b fj(Broadcast)314 b fc(MPI)s 15 2 v 14 w(BCAST)156 b fj(||)120 2015 y fk(??)f fj(Gather)374 b fc(MPI)s 15 2 v 14 w(GATHER)132 b fj(||)120 2083 y fk(??)155 b fj(Scatter)372 b fc(MPI)s 15 2 v 14 w(SCATTER)108 b fj(||)120 2152 y fk(??)155 b fj(All-to-all)17 b(broadcast)128 b fc(MPI)s 15 2 v 14 w(ALLCAST)108 b fj(||)120 2221 y fk(??)155 b fj(All-to-all)17 b(scatter-gather)44 b fc(MPI)s 15 2 v 14 w(ALLTOALL)84 b fj(||)120 2290 y fk(??)155 b fj(Reduce)371 b fc(MPI)s 15 2 v 14 w(REDUCE)132 b(MPI)s 15 2 v 13 w(USER)s 15 2 v 14 w(REDUCE)1204 2359 y(MPI)s 15 2 v 13 w(USER)s 15 2 v 14 w(REDUCEA)839 2428 y(MPI)s 15 2 v 14 w(ALLREDUCE)60 b(MPI)s 15 2 v 13 w(USER)s 15 2 v 14 w(ALLREDUCE)1204 2497 y(MPI)s 15 2 v 13 w(USER)s 15 2 v 14 w(ALLREDUCEA)120 2566 y fk(??)155 b fj(Scan)421 b(||)275 b fc(MPI)s 15 2 v 13 w(SCAN)1204 2635 y(MPI)s 15 2 v 13 w(USER)s 15 2 v 14 w(SCAN)1204 2704 y(MPI)s 15 2 v 13 w(USER)s 15 2 v 14 w(SCANA)p eop %%Page: 6 6 bop 75 -100 a fj(6)661 b fe(SECTION)16 b(1.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)75 45 y fd(1.3.4)49 b(T)l(op)q(ology)19 b(F)o(unctionalit)o(y)75 132 y fj(The)i(capabilit)o(y)g(presen)o(ted)g(in)g (the)g(pro)q(cess)g(top)q(ology)f(c)o(hapter)g(represen)o(ts)g(a)g(new)h (functionalit)o(y)75 189 y(in)e(MPI)g(and)g(is)g(not)f(generally)i(common)e (practice)h(to)q(da)o(y)l(.)30 b(Though)19 b(this)g(new)f(functionalit)o(y)i (will)75 245 y(undoubtedly)f(b)q(e)f(of)f(use)h(to)f(man)o(y)g(users)g(of)g (MPI,)g(pro)q(cess)h(top)q(ologies)g(are)f(b)q(eing)h(excluded)i(from)75 302 y(the)d(subset)h(in)g(the)f(in)o(terest)h(of)e(minimizing)k(the)e (di\016cult)o(y)g(of)f(implemen)o(tation.)27 b(Th)o(us,)18 b(all)g(of)f(the)75 358 y(functionalit)o(y)f(in)g(c)o(hapter)f fk(??)20 b fj(is)c(excluded)h(from)d(the)i(subset.)75 484 y fd(1.3.5)49 b(Language)18 b(Binding)75 571 y fj(The)c(subset)f(shall)i(con)o (tain)f(the)f(F)l(ortran)f(77)h(and)h(C)f(language)h(bindings.)21 b(All)15 b(the)e(routines)h(included)75 628 y(in)i(the)f(subset)h(will)h (conform)d(to)h(the)g(rules)h(stated)f(in)h(c)o(hapter)f fk(??)p fj(.)75 754 y fd(1.3.6)49 b(Environmental)17 b(Management)f(and)h(Inquiry)75 917 y fb(Discussion:)166 968 y fa(This)e(section)h(is)e(v)n(ague)h(b)q (ecause)i(it)d(is)h(still)f(not)h(clear)g(to)g(me)f(what)h(will)f(b)q(e)h(in) g(this)g(c)o(hapter.)22 b(Also,)15 b(w)o(e)75 1018 y(did)e(not)h(ha)o(v)o(e)f (an)o(y)h(detailed)f(discussion)i(at)e(the)i(last)e(meeting)g(ab)q(out)g (what)h(to)f(include/exclude.)19 b(There)c(w)o(as)75 1067 y(only)d(a)h (discussion)h(that)f(the)h(subset)g(should)f(con)o(tain)g(some)f(of)h(the)g (routines.)19 b(This)13 b(section)h(mostly)d(serv)o(es)k(as)75 1117 y(a)f(list)f(of)g(routines)i(w)o(e)f(need)h(to)e(decide)i(on.)166 1257 y fj(A)g(general)h(discussion)h(will)g(go)d(here)i(once)f(w)o(e)g (decide)i(what)e(is)g(going)h(on.)166 1314 y(The)d(table)h(b)q(elo)o(w)f(con) o(tains)g(a)g(listing)h(b)o(y)f(section)h(of)e(whic)o(h)i(routines)f(from)g (the)g(En)o(vironmen)o(tal)75 1371 y(Managemen)o(t)h(and)i(Inquiry)g(c)o (hapter)f(are)g(included)j(and)d(excluded)i(from)e(the)g(subset.)120 1487 y(Section)62 b(Title)519 b(Included)76 b(Excluded)75 1510 y 1723 2 v 120 1562 a fk(??)155 b fj(MPI)15 b(Program)f(Startup)h(Prop.)45 b fc(MPI)s 15 2 v 13 w(init)60 b fj(||)120 1631 y fk(??)155 b fj(MPI-Sp)q(eci\014c)18 b(Enquiry)185 b(||)154 b fc(MPI)s 15 2 v 14 w(ValidTags)355 1687 y fj(F)l(unctions)636 b fc(MPI)s 15 2 v 14 w(NumGroups)1183 1744 y(MPI)s 15 2 v 14 w(NumCntxs)1183 1800 y(MPI)s 15 2 v 14 w(BufferSize)1183 1857 y(MPI)s 15 2 v 14 w(BufferManagement)1183 1913 y(MPI)s 15 2 v 14 w(BufferSizePairs)1183 1970 y(MPI)s 15 2 v 14 w(BufferSizeAll)1183 2026 y(MPI)s 15 2 v 14 w(ExclusiveBuffer)1183 2083 y(MPI)s 15 2 v 14 w(IOmode)1183 2139 y(MPI)s 15 2 v 14 w(ErrorMode)1183 2195 y(MPI)s 15 2 v 14 w(Has)s 15 2 v 14 w(Ready)s 15 2 v 13 w(Receiver)1183 2252 y(MPI)s 15 2 v 14 w(Has)s 15 2 v 14 w(Heterogeneous)1183 2308 y(MPI)s 15 2 v 14 w(UnpackBufferDescriptor)1183 2365 y(MPI)s 15 2 v 14 w(DumpMessageQueue)1183 2421 y(MPI)s 15 2 v 14 w(StatusOfHandles) 120 2478 y fk(??)155 b fj(P)o(arallel)16 b(Programming)176 b(||)154 b fc(MPI)s 15 2 v 14 w(GetNbrs)1183 2534 y(MPI)s 15 2 v 14 w(GetPhysNode)1183 2591 y(MPI)s 15 2 v 14 w(GetTopology)1183 2647 y(MPI)s 15 2 v 14 w(GetDistance)1183 2704 y(MPI)s 15 2 v 14 w(GetDiameter)p eop %%Page: 7 7 bop 75 -100 a fe(1.3.)34 b(SUBSET)16 b(FUNCTIONALITY)1081 b fj(7)75 45 y fd(1.3.7)49 b(Pro\014ling)18 b(F)o(unctionalit)o(y)75 131 y fj(Pro\014ling)12 b(is)f(a)g(capabilit)o(y)h(whic)o(h)g(will)h(b)q(e)e (of)g(great)f(utilit)o(y)i(in)g(MPI)f(for)f(determining)j(the)e(p)q (erformance)75 187 y(of)16 b(eac)o(h)h(implemen)o(tation.)26 b(F)l(urthermore,)16 b(though)g(implemen)o(tation)j(of)d(the)h(pro\014ling)h (capabilities)75 244 y(doubles)h(the)f(n)o(um)o(b)q(er)g(of)f(routines)h (supplied,)j(these)d(routines)g(can)g(easily)h(b)q(e)f(generated)g(from)f (the)75 300 y(routines)11 b(required)h(elsewhere)g(in)g(the)f(subset.)18 b(Giv)o(en)11 b(these)g(considerations,)i(the)d(subset)h(will)i(con)o(tain)75 357 y(the)i(shado)o(w)g(routines)h(\\PMPI)s 14 2 v 13 w(")e(for)h(eac)o(h)g (routine)h(included)i(in)e(the)f(subset.)75 478 y fd(1.3.8)49 b(Subset)15 b(T)l(esting)75 640 y fb(Discussion:)166 690 y fa(There)g(has)g(b)q(een)g(discussion)g(of)f(creating)h(a)f(test)h(suite)g (for)f(MPI.)g(It)h(w)o(as)f(agreed)h(that)f(a)g(subset)i(of)e(this)75 740 y(testing)g(suite)h(w)o(ould)e(b)q(e)h(a)o(v)n(ailable)e(for)h(testing)i (the)f(subset)i(sp)q(eci\014cation.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF From owner-mpi-iac@CS.UTK.EDU Tue Sep 14 09:42:54 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA11530; Tue, 14 Sep 93 09:42:54 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA16764; Tue, 14 Sep 93 09:41:51 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Tue, 14 Sep 1993 09:41:50 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930125/2.8s-UTK) id AA16708; Tue, 14 Sep 93 09:41:44 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA23538; Tue, 14 Sep 93 09:41:34 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA02365; Tue, 14 Sep 93 09:41:33 EDT Date: Tue, 14 Sep 93 09:41:33 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9309141341.AA02365@b125.super.org> To: snir@watson.ibm.com Cc: tony@aurora.cs.msstate.edu, mpi-iac@cs.utk.edu In-Reply-To: <9309132206.AA24587@snir.watson.ibm.com> Subject: Re: verify context stuff for subset Marc and Tony, The reason I sent the mail to you both was that I had doubts about this but my notes indicated that this is what we decided at the bar on Thursday night. Clearly my brain short circuited when I wrote this down. I will modify the chapter so that MPI_COMM_MAKE is included in the subset. Tony also wanted MPI_CONTEXTS_ALLOC and this seems fine with me. I will add both. Let me know if you have any problem with this change. Sorry for my mistake. Steve From owner-mpi-iac@CS.UTK.EDU Thu Sep 30 11:33:00 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA03464; Thu, 30 Sep 93 11:33:00 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930922/2.8s-UTK) id AA02172; Thu, 30 Sep 93 11:32:11 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Thu, 30 Sep 1993 11:32:09 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930922/2.8s-UTK) id AA02152; Thu, 30 Sep 93 11:31:46 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA21814; Thu, 30 Sep 93 11:31:37 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA02082; Thu, 30 Sep 93 11:31:36 EDT Date: Thu, 30 Sep 93 11:31:36 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9309301531.AA02082@b125.super.org> To: mpi-iac@cs.utk.edu Subject: updated subset chapter The new subset chapter has been modified to represent the decisions at the September meeting. The major changes are: - The introduction was modified somewhat to make it less strong and to incorporate the changes in the chapter. - derived datatypes building functions are limited to basic datatypes as input arguments - the new "V" version collective communication functions not in the subset. REDUCE_SCATTER is also out. - context section is heavly changed to be consistent with the current draft. The main functionality change is that caching is in. - topologies are now in. Cartesian is included but the general graph functions are out. - Environmental is changed to reflect the decisions at the meeting. Everything is in except derived datatype unpacking and user defined error routines. Since we are reaching the end I would appreciate any comments you have to make no matter how small. The numbering of sections and exact functions may differ from the version of chapters you have since I have tried to keep up with the latest drafts. I am sending this out now because of the tight time schedule. A final fix up will occur when the other chapter are complete. I look forward to seeing you in Portland instead of Dallas. Thanks, Steve P.S. - This version is also available via anonymous ftp from ftp.super.org in pub/mpi. ------------------------------------------------------------------------------- %!PS-Adobe-2.0 %%Creator: This is dvips, version 5.35 (C) 1986-90 Radical Eye Software %%Title: mpi-report.dvi %%Pages: 7 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginProcSet: tex.pro /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /islandscape false N /vsize 10 N /@rigin{islandscape{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale Resolution VResolution vsize neg mul translate}B /@letter{/vsize 10 N}B /@landscape{/islandscape true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@legal{/vsize 13 N}B /@manualfeed {statusdict /manualfeed true put}B /@copies{/#copies exch N}B /@FontMatrix[1 0 0 -1 0 0]N /@FontBBox[0 0 0 0]N /dmystr(ZZf@@@)N /newname{dmystr cvn}B /df{ /scalefactor 1 N /fntrx @FontMatrix N df-tail}B /dfs{div /scalefactor exch N /fntrx[scalefactor 0 0 scalefactor neg 0 0]N df-tail}B /df-tail{/maxcc exch N /numcc exch N /fontname exch N dmystr 2 fontname cvx(@@@@)cvs putinterval newname 8 dict N newname load begin /FontType 3 N /FontMatrix fntrx N /FontBBox @FontBBox N /BitMaps numcc array N /base maxcc string N /BuildChar{ CharBuilder}N /Encoding IdentityEncoding N end fontname{/foo setfont}2 array copy cvx N fontname load 0 dmystr 6 string copy cvn cvx put /ctr 0 N[}B /E{ pop newname dup load definefont setfont}B /ch-image{ch-data 0 get dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /ch-width{ch-data 1 get}B /ch-height{ch-data 2 get}B /ch-xoff{ch-data 3 get}B /ch-yoff{ch-data 4 get}B /ch-dx{ch-data 5 get}B /ctr 0 N /CharBuilder{save 3 1 roll exch dup /base get 2 index get exch /BitMaps get exch get /ch-data exch N pop /ctr 0 N ch-data null ne{ch-dx 0 ch-xoff ch-yoff neg ch-xoff ch-width add ch-height ch-yoff sub setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-height ch-yoff sub .1 add]{ch-image}imagemask}if restore}B /D{newname load dup /base get 3 2 roll ctr put /BitMaps get exch ctr exch dup dup 5 get scalefactor div 5 exch put put /ctr ctr 1 add N[}B /bop{userdict /bop-hook known{bop-hook}if /SaveImage save N @rigin 0 0 moveto}B /eop{userdict /eop-hook known{eop-hook} if clear SaveImage restore showpage}B /@start{userdict /start-hook known{ start-hook}if /VResolution exch N /Resolution exch N 1000 div /DVImag exch N /IdentityEncoding 256 array N 0 1 255{IdentityEncoding exch 1 string dup 0 3 index put cvn put}for}B /p /show load N /RuleMatrix[1 0 0 -1 -.1 -.1]N /BlackDots 8 string N /v{gsave currentpoint translate false RuleMatrix{ BlackDots}imagemask grestore}B /a{moveto}B /delta 0 N /tail{dup /delta exch N 0 rmoveto}B /M{exch p delta add tail}B /b{exch p tail}B /c{-4 M}B /d{-3 M}B /e {-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /l{p -4 w}B /m{ p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /w{0 rmoveto}B /x{0 exch rmoveto}B /y{3 2 roll p a}B /bos{/section save N}B /eos{clear section restore}B end %%EndProcSet %%BeginProcSet: special.pro TeXDict begin /SDict 200 dict def SDict begin /@SpecialDefaults{/hs 612 def /vs 792 def /ho 0 def /vo 0 def /hsc 1 def /vsc 1 def /ang 0 def /CLIP false def /BBcalc false def}B /@scaleunit 100 def /@hscale{@scaleunit div /hsc exch def}B /@vscale{@scaleunit div /vsc exch def}B /@hsize{/hs exch def /CLIP true def}B /@vsize{/vs exch def /CLIP true def}B /@hoffset{/ho exch def}B /@voffset {/vo exch def}B /@angle{/ang exch def}B /@rwi{10 div /rwi exch def}B /@llx{ /llx exch def}B /@lly{/lly exch def}B /@urx{/urx exch def}B /@ury{/ury exch def /BBcalc true def}B end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{md begin /letter{}def /note{}def /legal{}def /od{txpose 1 0 mtx defaultmatrix dtransform exch atan/pa exch def newpath clippath mark{ transform{itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}def /txpose{pxs pys scale ppr aload pop por{noflips{pop exch neg exch translate pop 1 -1 scale}if xflip yflip and{pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not and{pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{ppr 1 get neg ppr 0 get neg translate}if}{ noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and{translate pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not and{translate pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy translate .96 dup scale neg exch neg exch translate}if}def /cp{pop pop showpage pm restore}def end}if}if}def /normalscale{Resolution 72 div VResolution 72 div neg scale SDict /magscale known{DVImag dup scale}if}def /psf$TeXscale{65536 div}def /startTexFig{/psf$SavedState save def userdict maxlength dict begin normalscale currentpoint translate /psf$ury exch psf$TeXscale def /psf$urx exch psf$TeXscale def /psf$lly exch psf$TeXscale def /psf$llx exch psf$TeXscale def /psf$y exch psf$TeXscale def /psf$x exch psf$TeXscale def currentpoint /psf$cy exch def /psf$cx exch def /psf$sx psf$x psf$urx psf$llx sub div def /psf$sy psf$y psf$ury psf$lly sub div def psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub translate /showpage{}def /erasepage{}def /copypage{}def @MacSetUp}def /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto}def /endTexFig{end psf$SavedState restore}def /@beginspecial{SDict begin /SpecialSave save def gsave normalscale currentpoint translate @SpecialDefaults}B /@setspecial{CLIP{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}{initclip}ifelse ho vo translate hsc vsc scale ang rotate BBcalc{rwi urx llx sub div dup scale llx neg lly neg translate}if /showpage{}def /erasepage{}def /copypage{}def newpath}B /@endspecial{grestore clear SpecialSave restore end}B /@defspecial{SDict begin }B /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{/SaveX currentpoint /SaveY exch def def 1 setlinecap newpath}B /st{stroke SaveX SaveY moveto}B /fil{fill SaveX SaveY moveto}B /ellipse{/endangle exch def /startangle exch def /yrad exch def /xrad exch def /savematrix matrix currentmatrix def translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}B end %%EndProcSet TeXDict begin 1000 300 300 @start /fa 26 91 df<001F0000001F0000003F8000003B80 00003B8000007BC0000073C0000071C00000F1E00000E1E00000E0E00001E0F00001E0F00001C0 F00003C0780003C078000380780007803C0007803C0007003C000FFFFE000FFFFE000FFFFE001E 000F001E000F003C000F803C0007803C000780780007C0780003C0780003C0F00003E0>27 32 1 0 30]65 D21 32 5 0 30]66 D<001FC000FFF801FFFC03E03C07800C0F00001E00003E00003C00007C0000780000 780000780000F00000F00000F00000F00000F00000F00000F00000F00000780000780000780000 7C00003C00003E00001E00000F000207800E03E03E01FFFC00FFF0001FC0>23 34 3 1 29]67 D24 32 5 0 33]68 D19 32 5 0 27]69 D18 32 5 0 26]70 D<001FE000FFF801FFFE03E03E07800E0F00001E00003E00003C00007C00007800007800007800 00F00000F00000F00000F00000F00000F00000F003FEF003FE7803FE78001E78001E7C001E3C00 1E3E001E1E001E0F001E07801E03E03E01FFFE00FFF8001FC0>23 34 3 1 30]71 D21 32 5 0 32]72 D4 32 4 0 13]73 D<003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C00 3C003C003C003C003C003C003C003C003C003C003C003C003CC078E078FFF07FE00FC0>14 33 2 1 21]74 D24 32 5 0 32]75 D17 32 5 0 25]76 D29 32 5 0 40]77 D21 32 5 0 32]78 D<003F000000FFC00003FFF00007E1F8000F807C001F003E001E 001E003C000F003C000F00780007807800078078000780F00003C0F00003C0F00003C0F00003C0 F00003C0F00003C0F00003C0F00003C0F00003C0F80007C07800078078000780780007803C000F 003C000F001E001E001F003E000F807C0007E1F80003FFF00000FFC000003F0000>26 34 3 1 33]79 D20 32 5 0 29]80 D<003F000000FFC00003FFF00007E1F8000F807C001F003E001E001E003C000F003C 000F00780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0 F00003C0F00003C0F00003C0F00003C07800078078000780781E07803C0F0F003C0F8F001E079E 001F03FE000F83FC0007E1F80003FFF00000FFF800003F780000007C0000003E0000001E000000 1F0000000F80>26 39 3 6 33]81 D22 32 5 0 29]82 D<01FC0007FF800FFFC01F03C03C00C03C000078000078000078000078000078 00007C00003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C00003E00001E000 01E00001E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F800>19 34 2 1 25]83 D26 32 2 0 31]84 D20 33 5 1 31]85 D27 32 1 0 30]86 D40 32 1 0 43]87 D<780007807C000F003E001F001E001E000F 003C000F807C000780780003C0F00003E1F00001F1E00000F3C000007FC000007F8000003F0000 001F0000001E0000003F0000007F8000007FC00000F3C00001F1E00001E0F00003C0F80007C078 0007803C000F003E001F001E001E000F003C000F807C0007C0780003C0F00003E0>27 32 1 0 30]88 D29 32 0 0 30]89 D22 32 3 0 28]90 D E /fb 38 122 df<000078007C7800FC7801FC7803 C000038000078000078000078000078000078000078000078000078000FFFC78FFFC78FFFC7807 807807807807807807807807807807807807807807807807807807807807807807807807807807 8078078078078078078078078078078078>21 36 0 0 26]12 D<787878781830306060E0>5 10 4 6 14]44 D4 4 5 0 14]46 D<00C001C007C0FFC0FFC0FBC003C003C003C003 C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0 03C003C0FFFFFFFFFFFF>16 34 4 0 24]49 D<03F0000FFC001FFE003C1F003007807007C060 03C0E003E0C001E04001E04001E00001E00001E00001E00003C00003C0000780000780000F0000 1E00003C0000780000F00001E00001C0000380000700000E00001C0000380000700000FFFFE0FF FFE0FFFFE0>19 34 2 0 24]50 D<01F00007FC001FFF003E0F003807807003C02003C02003C0 0003C00003C00003C0000780000780000F00001E0003FC0003F80003FE00000F000007800003C0 0003C00001E00001E00001E00001E00001E08001E0C003C0E003C07007803C0F801FFF000FFC00 03F000>19 35 2 1 24]51 D<001F00001F00002F00002F00006F0000EF0000CF0001CF0001CF 00038F00038F00078F00070F000F0F000E0F001E0F003C0F003C0F00780F00780F00F00F00FFFF F8FFFFF8FFFFF8000F00000F00000F00000F00000F00000F00000F00000F00000F00>21 33 1 0 24]52 D<3FFF803FFF803FFF803C00003C00003C00003C00003C00003C00003C00003C 00003C00003CF8003FFE003FFF003F0F803E07803C03C03803C00001E00001E00001E00001E000 01E00001E00001E04003C04003C0E003C07007807C1F003FFE000FFC0003F000>19 34 2 1 24]53 D<007E0001FF0003FF0007C1000F00001E00001E00003C00003C000078000078 000078F800F1FE00F7FF00FF0F80FC0780F803C0F803C0F801C0F001E0F001E0F001E0F001E0F0 01E07001E07001E07801E07803C03803C03C03801C07801F0F000FFE0007FC0001F000>19 35 2 1 24]54 D19 33 2 0 24]55 D23 35 5 0 32]66 D<000FF000007FFC0000FFFF0001F01F0003C00700078000000F0000001E0000 003E0000003C0000003C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000000F0000000F0000000F0000000F00000007800000078000000780000003C0000003C 0000003E0000001E0000000F0000000780008003C0038001F00F8000FFFF00007FFC00000FF000 >25 37 3 1 31]67 D21 35 5 0 29]69 D20 35 5 0 28]70 D<000FF000003FFE0000FFFF8001F80F8003E00380078000000F0000001E0000 001E0000003C0000003C000000780000007800000078000000F0000000F0000000F0000000F000 0000F0000000F0000000F000FFC0F000FFC0F000FFC0780003C0780003C0780003C03C0003C03C 0003C01E0003C01E0003C00F0003C0078003C003E003C001F807C000FFFFC0003FFF00000FF800 >26 37 3 1 33]71 D4 35 4 0 13]73 D18 35 5 0 26]76 D31 35 5 0 42]77 D22 35 5 0 31]80 D28 35 2 0 33]84 D<07E01FF83FFC381E201E000F000F000F000F00FF07FF1FFF3E0F780FF00FF0 0FF00FF00FF83F7FFF3FEF1F8F>16 22 2 0 23]97 D<01FC0007FF000FFF801F03803C018078 0000780000700000F00000F00000F00000F00000F00000F000007800007800007800003C00401F 03C00FFFC007FF8001FC00>18 22 2 0 22]99 D<0003C00003C00003C00003C00003C00003C0 0003C00003C00003C00003C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C0 7803C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC0 1FFFC00FFBC003E3C0>18 35 2 0 25]100 D<03F00007FC001FFE003E0F003C07807803807803 80F001C0FFFFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F07800FFF 8007FF0001F800>18 22 2 0 22]101 D<01F07807FFF80FFFF81F1F001E0F003C07803C07803C 07803C07803C07801E0F001F1F000FFE001FFC0019F0003800003800003C00001FFE001FFFC01F FFE03FFFF07801F07800F8F00078F00078F00078F000787800F03E03E01FFFC00FFF8001FC00> 21 33 1 11 24]103 D4 35 3 0 11]105 D4 35 3 0 11]108 D30 22 4 0 39]109 D16 22 4 0 25]110 D<01FC0007FF000FFF801F07C03C01E078 00F07800F0700070F00078F00078F00078F00078F00078F000787800F07800F07C01F03E03E01F 07C00FFF8007FF0001FC00>21 22 1 0 24]111 D18 32 4 10 25]112 D11 22 4 0 17]114 D<07F01FFC3FFE3C0E7806780078 007C003F003FF01FF80FFC01FE001F000F000F000FC00FF81EFFFE3FFC0FF0>16 22 1 0 19]115 D<0F000F000F000F000F000F00FFF8FFF8FFF80F000F000F000F000F000F000F 000F000F000F000F000F000F000F000F080F1C07FC07F803E0>14 28 1 0 18]116 D16 22 4 0 25]117 D19 22 1 0 22]118 D<7801F07C01E03E03C01E07C00F0780078F0007DE 0003FC0001FC0000F80000700000F80001FC0003DC00039E00078F000F07801E07801E03C03C01 E07800F0F800F8>21 22 0 0 22]120 D19 32 1 10 22]121 D E /fc 9 86 df<003FC000FFF003C0F00780300F00001E00003C00003C00 00780000780000780000F00000F00000F00000F00000F00000F00000F00000F00000F000007800 007800007800003C00003C00001E00000F000807801803C07800FFF0003F80>21 31 3 1 27]67 D4 29 4 0 12]73 D15 29 4 0 22]76 D27 29 4 0 36]77 D20 29 4 0 29]78 D<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F003C000F00780007 807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000 03C0F80007C078000780780007807C000F803C000F003E001F001F003E000F807C0007C0F80003 FFF00001FFE000003F0000>26 31 2 1 31]79 D20 29 4 0 27]80 D21 29 4 0 27]82 D20 30 4 1 29]85 D E /fd 15 121 df<007E0001C1800301800703C00E03C00E01800E0000 0E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8>21 29 0 0 23]12 D<60F0F0701010101020204080>4 12 4 8 12]44 D<07C01830201C400C400EF00F F80FF807F8077007000F000E000E001C001C00380070006000C00180030006010C01180110023F FE7FFEFFFE>16 28 2 0 21]50 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C0 00800180010001000100010001000100000000000000000000000300078007800300>15 29 2 0 20]63 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C0070 1C00601C00E01C40E01C40E01C40603C40304E801F8700>18 18 2 0 21]97 D<07E00C301878307870306000E000E000E000E000E000E00060007004300418080C3007C0>14 18 2 0 18]99 D<03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218 040C1803E0>15 18 1 0 18]101 D20 29 1 0 23]104 D33 18 1 0 36]109 D<03F0000E1C00180600300300 700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C00 03F000>18 18 1 0 21]111 D19 26 1 8 23]112 D13 18 1 0 16]114 D<04000400040004000C 000C001C003C00FFE01C001C001C001C001C001C001C001C001C001C101C101C101C101C100C10 0E2003C0>12 26 1 0 16]116 D19 18 1 0 22]118 D<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000 F800009C00010E00020E000607000403801E07C0FF0FF8>21 18 0 0 22]120 D E /fe 9 118 df<78FCFCFCFC7800000000000078FCFCFCFC78>6 18 3 0 13]58 D<0FF0303C601EF01FF81FF81F701F003E003C007000E001C0018001800300030003 0003000300000000000000000007800FC00FC00FC00FC00780>16 29 3 0 23]63 D31 28 2 0 37]68 D<03FC000E0E001C1F003C1F00781F00780E00F80000F80000F80000F800 00F80000F800007800007801803C01801C03000E0E0003F800>17 18 2 0 21]99 D<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F001F00 1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0>11 30 1 0 14]105 D24 18 1 0 27]110 D<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800 F07800F03C01E01E03C00F078001FC00>21 18 1 0 24]111 D<1FD830786018E018E018F000FF 807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC0>14 18 2 0 19]115 D24 18 1 0 27]117 D E /ff 18 90 df<3078F87870>5 5 4 0 13]46 D<007F000183C00201E00400F00700F00F00F00F01F00F 01F00001E00001E00003C0000380000700000E0000F800000E000007000007800007C00003C000 07C03007C07807C0F807C0F807C0F00780800F00400E00201C0018780007E000>20 31 3 1 23]51 D<2000003FFFE07FFFC07FFF80400100C0020080020080040000080000100000 20000040000040000080000180000300000300000700000600000E00000E00001E00001C00001C 00003C00003C00003C0000780000780000780000300000>19 31 7 1 23]55 D<0000100000001800000038000000380000007800000078000000FC000001BC0000013C000003 3C0000023C0000063C0000043E0000081E0000081E0000101E0000101E0000201E0000200F0000 400F0000400F0000FFFF0000800F0001000F800100078002000780020007800400078004000780 0C0007C03E0007C0FF807FFC>30 32 2 0 34]65 D<07FFFF00007C01C0003C01E0003C00F000 7800F8007800F8007800F8007800F8007800F8007800F000F001F000F001E000F003C000F00F80 00FFFE0000F00F0001E007C001E003C001E003E001E001E001E001E001E001E003C001E003C003 E003C003E003C003C003C007C003C00F8007800F0007803E00FFFFF000>29 31 2 0 32]66 D<0001F808000E061800380138007000F801E0007803C0007007800030078000 300F0000301F0000301E0000303E0000203C0000007C0000007C0000007C0000007C000000F800 0000F8000000F8000000F8000000F80000007800004078000080780000803C0000803C0001001C 0002000E00020006000C000300100001C0E000003F0000>29 33 5 1 33]67 D<07FFFFF8007C0078003C0038003C001800780018007800080078000800780008007800080078 080800F0100000F0100000F0100000F0300000FFF00000F0700001E0200001E0200001E0200001 E0200001E0000801E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0 078007C0FFFFFF80>29 31 2 0 31]69 D<07FFFFF8007C0078003C0038003C00180078001800 7800080078000800780008007800080078000800F0100000F0100000F0100000F0300000F07000 00FFF00001E0600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003C000 0003C0000003C0000003C000000780000007C00000FFFE0000>29 31 2 0 30]70 D<07FFE0007C00003C00003C0000780000780000780000780000780000780000F00000 F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003 C00003C00003C00003C00007800007C000FFFC00>19 31 1 0 16]73 D<07FFF000007E000000 3C0000003C000000780000007800000078000000780000007800000078000000F0000000F00000 00F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0000001E0008001E001 0003C0010003C0010003C0030003C0020003C0060003C0060007801E0007807C00FFFFFC00>25 31 2 0 28]76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F00000 4E0002F000004E0004F000004E0004F000004E0008F000004E0008F00000870011E00000870011 E00000870021E00000870021E00000870041E00000838041E00001038083C00001038083C00001 038103C00001038203C0000101C203C0000101C403C0000201C40780000201C80780000201C807 80000201D00780000200F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF800> 42 31 2 0 42]77 D<07FC01FFC0003E003E00003E001800003E001800004F001000004F001000 004780100000478010000043C010000043C010000083C020000081E020000081E020000080F020 000080F020000080782000010078400001007C400001003C400001003C400001001E400001001E 400002000F800002000F800002000F800002000780000200078000060003800006000300000F00 010000FFE0010000>34 31 2 0 34]78 D<0003F800001E0E000038070000E0038001C001C003 C001E0078000E00F0000F00F0000F01E0000F01E0000F83E0000F83C0000F87C0000F87C0000F8 7C0000F87C0000F8F80001F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007 C07C0007803C000F003C001E001E001C000E0038000700F00003C3C00000FE0000>29 33 5 1 35]79 D<07FFFF00007C03C0003C01E0003C00F0007800F0007800F8007800F8007800 F8007800F8007800F000F001F000F001E000F003C000F0078000F00F0000FFF80001E0000001E0 000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C0000003 C000000780000007C00000FFFC0000>29 31 2 0 31]80 D<003F040060CC01803C03801C0300 1C0700180600080E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007F E00007E00001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E00380F803 00C60C0081F800>22 33 3 1 25]83 D<3FFFFFF03C0780F03007803060078030400F0010400F 0010C00F0010800F0010800F0010800F0010001E0000001E0000001E0000001E0000001E000000 1E0000003C0000003C0000003C0000003C0000003C0000003C0000007800000078000000780000 00780000007800000078000000F0000001F800007FFFE000>28 31 6 0 33]84 D29 32 7 1 34]85 D32 31 6 0 34]89 D E /fg 27 122 df5 5 6 0 17]46 D<00180000380000F80007 F800FFF800FFF800F8F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000 F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000 F80000F80000F80000F80000F80000F80000F80000F8007FFFF07FFFF07FFFF0>20 40 5 0 30]49 D<00FE0003FFC007FFE00FFFF01F03F83C00FC38007E78003E70003EF0001FF0 001F60001F20001F00001F00001F00001F00003E00003E00007C00007C0000F80001F00001E000 03C0000780000F00001E00003C0000780000F00001E00003C0000780000F00001E00003C00007F FFFF7FFFFF7FFFFF7FFFFF>24 40 2 0 30]50 D<007F000001FFC00007FFF0000FFFF8001FC1 F8003E007C003C003E0078003E0038003E0010003E0000003E0000003E0000003C0000007C0000 00FC000001F8000007F00000FFE00000FFC00000FFE00000FFF0000001FC0000007C0000003E00 00001F0000001F0000000F8000000F8000000F8000000F8000000F8040000F8060001F00F0001F 00F8003F007E007E003F81FC001FFFF8000FFFF00003FFE000007F0000>25 41 2 1 30]51 D<0003F0000007F0000005F000000DF000000DF000001DF0000039F0000039F0 000079F0000079F00000F1F00000F1F00001E1F00003E1F00003E1F00007C1F00007C1F0000F81 F0000F81F0001F01F0001F01F0003E01F0007C01F0007C01F000F801F000FFFFFF80FFFFFF80FF FFFF80FFFFFF800001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000 0001F0000001F000>25 39 2 0 30]52 D25 39 2 0 30]55 D<0001FF00000FFFE0003FFF F8007FFFF800FE01F801F8003003F0001007C000000F8000001F8000001F0000003E0000003E00 00007E0000007C0000007C0000007C000000F8000000F8000000F8000000F8000000F8000000F8 000000F8000000F8000000F8000000F80000007C0000007C0000007C0000007E0000003E000000 3E0000001F0000001F8000000F80000007C0000003F0000401F8001C00FE00FC007FFFFC003FFF F8000FFFE00001FF00>30 44 4 1 38]67 D26 42 5 0 34]70 D5 42 6 0 17]73 D31 42 5 0 39]82 D<007FC00001FFF80007FFFE000FFFFF001FC07F003F000F007E0006007C0000 007C000000F8000000F8000000F8000000F8000000F8000000FC0000007E0000007F0000003F80 00001FF800000FFF800007FFE00003FFF80000FFFC00000FFE000000FF0000003F0000001F8000 000F8000000FC0000007C0000007C0000007C0000007C0000007C0000007C000000F8060000F80 F0001F00FC003F00FF80FE007FFFFC001FFFF80007FFE00000FF8000>26 44 3 1 33]83 D36 42 2 0 41]84 D<01FE000FFF803FFFC03FFFE03C03F03001F00001F80000F80000F80000F80000F80000F8007F F807FFF81FFFF83FE0F87F00F8FC00F8F800F8F800F8F800F8FC01F87E07F87FFFF83FFFF81FFC F80FE0F8>21 27 2 0 29]97 D23 42 5 0 31]98 D<007FC001FFF007FFFC0FFFFC1FC07C1F00083E00007C00007C00007C0000F80000F80000F800 00F80000F80000F80000F800007C00007C00007E00003E00001F000C1FC07C0FFFFC07FFFC01FF F0007F80>22 27 2 0 27]99 D<00003E00003E00003E00003E00003E00003E00003E00003E00 003E00003E00003E00003E00003E00003E00003E00FC3E03FF3E07FFFE0FFFFE1FC1FE3F007E3E 003E7C003E7C003EFC003EF8003EF8003EF8003EF8003EF8003EF8003EF8003EFC003E7C003E7C 003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E>23 42 2 0 31]100 D<007E0003FF8007FFC00FFFE01F83F03F00F03E00787C00787C003878003CFFFFFCFFFFFCFFFF FCFFFFFCF80000F80000F800007800007C00007C00003E00003F000C1FC07C0FFFFC07FFFC01FF F0007F80>22 27 2 0 27]101 D<00F8078003FE7FC00FFFFFC01FFFFFC01F07C0003E03E0003E 03E0007C01F0007C01F0007C01F0007C01F0007C01F0007C01F0003E03E0003E03E0001F07C000 1FFFC0003FFF80003BFE000038F8000078000000780000003C0000003FFFC0003FFFF8001FFFFC 001FFFFE003FFFFF007C007F00F8001F80F8000F80F8000F80F8000F80FC001F807E003F003F80 FE003FFFFE000FFFF80007FFF00000FF8000>26 40 2 13 30]103 D5 42 4 0 14]105 D5 42 4 0 14]108 D20 27 5 0 31]110 D<007F000001FFC00007FFF0000FFFF8001FC1FC003F007E003E003E007C001F007C00 1F0078000F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F807C001F007C 001F007E003F003E003E003F007E001FC1FC000FFFF80007FFF00001FFC000007F0000>25 27 2 0 30]111 D13 27 5 0 20]114 D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000F80000F80000FC00007F80007FF8003FFE 001FFF0007FF8000FFC0000FE00007E00003E00003E04003E0E007E0FC0FC0FFFFC07FFF801FFE 0003F800>19 27 2 0 23]115 D<07C00007C00007C00007C00007C00007C00007C000FFFFC0FF FFC0FFFFC007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007 C00007C00007C00007C00007C00007C00007C00007C04007E1C003FFE003FFE001FF8000FC00> 19 34 1 0 22]116 D20 27 5 0 31]117 D25 39 1 12 28]121 D E /fh 8 117 df<1E00000000001F00000000001FF0000000001FFFFFFFFFC01FFFFFFFFFC0 1FFFFFFFFFC03FFFFFFFFFC03FFFFFFFFF803FFFFFFFFF003FFFFFFFFE003FFFFFFFFC003FFFFF FFF8003FFFFFFFF0007FFFFFFFF0007C000007E0007C00000FC0007800001F80007800001F0000 7800003E0000F000007E0000F00000FC0000F00001F80000000003F00000000003E00000000007 E0000000000FC0000000000F80000000001F80000000003F80000000003F00000000007F000000 00007F0000000000FF0000000000FE0000000001FE0000000001FE0000000003FE0000000003FE 0000000003FE0000000007FC0000000007FC0000000007FC000000000FFC000000000FFC000000 000FFC000000000FFC000000000FFC000000001FFC000000001FFC000000001FFC000000001FFC 000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000000FF8000000 0007F00000000003E0000000>42 59 5 1 49]55 D<0003FF800180001FFFF00380007FFFFC07 8001FFFFFF0F8003FE00FF9F8007F0000FFF800FE00003FF801FC00001FF803F8000007F803F80 00007F807F0000003F807F0000001F807F0000001F80FF0000000F80FF0000000F80FF0000000F 80FF8000000780FF8000000780FFC000000780FFE000000780FFF8000000007FFE000000007FFF F00000007FFFFF0000003FFFFFF800003FFFFFFF00001FFFFFFFC0000FFFFFFFF00007FFFFFFF8 0003FFFFFFFC0001FFFFFFFE00007FFFFFFF00003FFFFFFF800007FFFFFF8000007FFFFFC00000 07FFFFC00000003FFFE000000003FFE000000000FFF0000000007FF0000000003FF0700000001F F0F00000001FF0F00000001FF0F00000000FF0F00000000FF0F80000000FF0F80000000FE0F800 00000FE0FC0000000FE0FC0000001FC0FE0000001FC0FF0000001F80FFC000003F80FFF000007F 00FFFC0001FE00FCFFC007FC00F87FFFFFF800F01FFFFFE000E003FFFF8000C0003FFC0000>44 61 5 1 55]83 D<0000FFF000000FFFFF00003FFFFF8000FFC01FC001FF003FE003FC007FF007 FC007FF00FF8007FF01FF0007FF01FF0003FE03FF0003FE03FF0001FC07FE00007007FE0000000 7FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 00FFE00000007FE00000007FE00000007FF00000003FF00000003FF00000001FF00000781FF800 00780FF80000F007FC0000F003FE0001E001FF8007C000FFE01F80003FFFFF00000FFFFC000000 FFC000>37 38 3 0 44]99 D<0001FFC000000FFFF800003FFFFE0000FF80FF0001FE003F8007 FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83FF00007F87FE00007F87FE00003FC 7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FFE00000 00FFE0000000FFE00000007FE00000007FE00000007FE00000003FE00000003FF000003C1FF000 003C1FF000003C0FF800007807FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF000007 FFFC000000FFE000>38 38 3 0 45]101 D<01F00007FC000FFE000FFE001FFF001FFF001FFF00 1FFF001FFF000FFE000FFE0007FC0001F000000000000000000000000000000000000000000000 00000000000000000000FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8 FFFFF8FFFFF8>21 61 3 0 27]105 D<00FE007FC000FFFE01FFF800FFFE07FFFC00FFFE0F03FE 00FFFE1C01FF0007FE3001FF8003FE6000FF8003FEE000FFC003FEC000FFC003FF8000FFC003FF 8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFF FC3FFFFFFFFFFC3FFFFF>48 38 4 0 55]110 D<0000FFC00000000FFFFC0000003FFFFF000000 FFC0FFC00001FE001FE00007FC000FF80007F80007F8000FF00003FC001FF00003FE003FF00003 FF003FE00001FF007FE00001FF807FE00001FF807FE00001FF807FE00001FF80FFE00001FFC0FF E00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001FFC0FFE00001 FFC0FFE00001FFC07FE00001FF807FE00001FF807FE00001FF803FF00003FF003FF00003FF001F F00003FE000FF80007FC000FF80007FC0007FC000FF80003FE001FF00000FFC0FFC000003FFFFF 0000000FFFFC00000001FFE00000>42 38 3 0 49]111 D<000780000007800000078000000780 0000078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000007F 800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF800001FF800001 FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000 01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF803C01FF803C01FF80 3C01FF803C01FF803C01FF803C01FF803C01FF803C00FF807800FFC078007FC070003FE0E0001F FFC00007FF800001FF00>30 55 2 0 38]116 D E /fi 10 58 df<1F00318060C04040C060C0 60C060C060C060C060C060C060404060C031801F00>11 16 1 0 15]48 D<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF80>9 16 2 0 15]49 D<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FF C0>11 16 1 0 15]50 D<1F00218060C060C000C0008001800F00008000400060C060C0608040 60801F00>11 16 1 0 15]51 D<0300030007000F000B001300330023004300C300FFE0030003 00030003001FE0>11 16 1 0 15]52 D<20803F002C002000200020002F003080204000600060 0060C06080C061801F00>11 16 1 0 15]53 D<0780184030C060C06000C000CF00F080E040C0 60C060C060406060C030801F00>11 16 1 0 15]54 D<40007FE07FC080808080010002000400 04000C000800080018001800180018001800>11 17 2 0 15]55 D<1F00318060C060C060C071 803F000F00338061C0C060C060C060404060801F00>11 16 1 0 15]56 D<1F00318060C0C040C060C060C06040E021E01E600060004060C0608043003E00>11 16 1 0 15]57 D E /fj 70 125 df<001F83E000F06E3001C078780380F8780300F030070070 00070070000700700007007000070070000700700007007000FFFFFF8007007000070070000700 700007007000070070000700700007007000070070000700700007007000070070000700700007 00700007007000070070000700700007007000070070007FE3FF00>29 32 0 0 27]11 D<003F0000E0C001C0C00381E00701E00701E0070000070000070000070000070000 070000FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0 0700E00700E00700E00700E00700E00700E00700E07FC3FE>23 32 0 0 25]12 D<001F81F80000F04F040001C07C06000380F80F000300F00F000700F00F000700700000 07007000000700700000070070000007007000000700700000FFFFFFFF00070070070007007007 000700700700070070070007007007000700700700070070070007007007000700700700070070 070007007007000700700700070070070007007007000700700700070070070007007007000700 7007007FE3FE3FF0>36 32 0 0 38]14 D<7038F87CFC7EFC7E743A0402040204020804080410 08100820104020>15 14 2 -18 23]34 D<007800000084000001840000030200000702000007 0200000702000007020000070400000704000007080000070800000310000003A00FFC03C003E0 038001C001C0008001C0010003E0010004E0020008F00200187004003078080070380800701C10 00F01E1000F00E2000F0074000F003C0087003C0087801C010380670301C18386007E00F80>30 34 2 1 35]38 D<70F8FCFC74040404080810102040>6 14 4 -18 13]39 D<0020004000800100020006000C000C00180018003000300030007000600060006000E000E000 E000E000E000E000E000E000E000E000E000E0006000600060007000300030003000180018000C 000C00060002000100008000400020>11 46 3 12 18]40 D<800040002000100008000C000600 06000300030001800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000 E000E000E000C000C000C001C001800180018003000300060006000C0008001000200040008000 >11 46 3 12 18]41 D<70F8FCFC74040404080810102040>6 14 4 9 13]44 D10 2 1 -9 15]45 D<70F8F8F870>5 5 4 0 13]46 D<0001000300030006000600 06000C000C000C00180018001800300030003000600060006000C000C000C00180018001800300 030003000600060006000C000C000C00180018001800300030003000600060006000C000C000C0 00>16 45 3 11 23]47 D<03F0000E1C001C0E00180600380700700380700380700380700380F0 03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C070 03807003807003807807803807001806001C0E000E1C0003F000>18 31 2 1 23]48 D<018003800F80F38003800380038003800380038003800380038003800380038003 800380038003800380038003800380038003800380038007C0FFFE>15 30 4 0 23]49 D<03F0000C1C00100E00200700400780800780F007C0F803C0F803C0F803C02007C0 0007C0000780000780000F00000E00001C0000380000700000600000C000018000030000060040 0C00401800401000803FFF807FFF80FFFF80>18 30 2 0 23]50 D<03F0000C1C00100E00200F 00780F80780780780780380F80000F80000F00000F00000E00001C0000380003F000003C00000E 00000F000007800007800007C02007C0F807C0F807C0F807C0F00780400780400F00200E001C3C 0003F000>18 31 2 1 23]51 D<000600000600000E00000E00001E00002E00002E00004E0000 8E00008E00010E00020E00020E00040E00080E00080E00100E00200E00200E00400E00C00E00FF FFF0000E00000E00000E00000E00000E00000E00000E0000FFE0>20 30 1 0 23]52 D<1803001FFE001FFC001FF8001FE000100000100000100000100000100000100000 11F000161C00180E001007001007800003800003800003C00003C00003C07003C0F003C0F003C0 E00380400380400700200600100E000C380003E000>18 31 2 1 23]53 D<007C000182000701000E03800C07801C0780380300380000780000700000700000F1F000F21C 00F40600F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C07003803803 803807001807000C0E00061C0001F000>18 31 2 1 23]54 D<4000007FFFC07FFF807FFF8040 010080020080020080040000080000080000100000200000200000400000400000C00000C00001 C00001800003800003800003800003800007800007800007800007800007800007800007800003 0000>18 31 3 1 23]55 D<03F0000C0C00100600300300200180600180600180600180700180 7803003E03003F06001FC8000FF00003F80007FC000C7E00103F00300F806003804001C0C001C0 C000C0C000C0C000C0C000806001802001001002000C0C0003F000>18 31 2 1 23]56 D<03F0000E18001C0C00380600380700700700700380F00380F00380F003C0F003C0 F003C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C0000380000380000380000700 300700780600780E00700C002018001070000FC000>18 31 2 1 23]57 D<70F8F8F8700000000000000000000070F0F8F878080808101010202040>5 29 4 9 13]59 D<000100000003800000038000000380000007C0000007C0000007C0000009E0 000009E0000009E0000010F0000010F0000010F00000207800002078000020780000403C000040 3C0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F00020007800200078002 000780040003C00E0003C01F0007E0FFC03FFE>31 32 1 0 34]65 D26 31 2 0 32]66 D<000FC040007030C001C009C0038005C0070003C00E0001C01E0000C01C0000 C03C0000C07C0000407C00004078000040F8000000F8000000F8000000F8000000F8000000F800 0000F8000000F8000000F8000000780000007C0000407C0000403C0000401C0000401E0000800E 000080070001000380020001C0040000703800000FC000>26 33 3 1 33]67 D29 31 2 0 35]68 D27 31 2 0 31]69 D25 31 2 0 30]70 D<000FE0200078186000E004E0038002E007 0001E00F0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8000000 F8000000F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E03C0001 E03C0001E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820000FE000>30 33 3 1 36]71 D29 31 2 0 34]72 D14 31 1 0 16]73 D23 31 2 0 28]76 D37 31 2 0 42]77 D29 31 2 0 34]78 D<001F800000F0F00001C0380007801E000F000F000E0007001E0007803C0003C03C0003 C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F800 01F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03C0003C01E0007800E0007000F 000F0007801E0001C0380000F0F000001F8000>28 33 3 1 35]79 D25 31 2 0 31]80 D30 32 2 1 33]82 D<07E0800C198010078030 0380600180600180E00180E00080E00080E00080F00000F000007800007F00003FF0001FFC000F FE0003FF00001F800007800003C00003C00001C08001C08001C08001C08001C0C00180C00380E0 0300F00600CE0C0081F800>18 33 3 1 25]83 D<7FFFFFE0780F01E0600F0060400F0020400F 0020C00F0030800F0010800F0010800F0010800F0010000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000001F800007FFFE00>28 31 2 0 33]84 D29 32 2 1 34]85 D<08041008201020104020 4020804080408040B85CFC7EFC7E7C3E381C>15 14 5 -18 23]92 D<1FE00030300078180078 1C00300E00000E00000E00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E10F0 1E10781E103867200F83C0>20 20 2 0 23]97 D<0E0000FE00000E00000E00000E00000E0000 0E00000E00000E00000E00000E00000E00000E3E000EC3800F01C00F00E00E00E00E00700E0070 0E00780E00780E00780E00780E00780E00780E00700E00700E00E00F00E00D01C00CC300083E00 >21 32 1 0 25]98 D<03F80E0C1C1E381E380C70007000F000F000F000F000F000F000700070 00380138011C020E0C03F0>16 20 2 0 20]99 D<000380003F80000380000380000380000380 00038000038000038000038000038000038003E380061B801C0780380380380380700380700380 F00380F00380F00380F00380F00380F003807003807003803803803807801C07800E1B8003E3F8 >21 32 2 0 25]100 D<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF 80F00000F00000F000007000007000003800801800800C010007060001F800>17 20 1 0 20]101 D<007C00C6018F038F07060700070007000700070007000700FFF00700070007 000700070007000700070007000700070007000700070007000700070007007FF0>16 32 0 0 14]102 D<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F0038 0E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFFC03001E0600070C0 0030C00030C00030C000306000603000C01C038003FC00>20 31 1 10 23]103 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E 000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 32 1 0 25]104 D<1C003E003E003E001C00 0000000000000000000000000E007E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E00FFC0>10 31 0 0 12]105 D<00E001F001F001F000E0000000000000 000000000000007007F000F0007000700070007000700070007000700070007000700070007000 7000700070007000700070007000706070F060F0C061803F00>12 40 -2 9 14]106 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C00 0E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF8>21 32 1 0 24]107 D<0E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0>11 32 0 0 12]108 D<0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E 00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00 0E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE0>35 20 1 0 38]109 D<0E3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 20 1 0 25]110 D<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F0 00F0F000F0F000F07000E07000E03801C03801C01C0380070E0001F800>20 20 1 0 23]111 D<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00780E00780E 00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E00000E 00000E00000E00000E00000E0000FFE000>21 29 1 9 25]112 D<03E0800619801C05803C0780 380380780380700380F00380F00380F00380F00380F00380F00380700380780380380380380780 1C0B800E138003E380000380000380000380000380000380000380000380000380003FF8>21 29 2 9 24]113 D<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E 000E000E000E00FFE0>15 20 1 0 18]114 D<1F9030704030C010C010C010E00078007F803FE0 0FF00070803880188018C018C018E030D0608F80>13 20 2 0 18]115 D<020002000200060006 000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E08 0E080610031001E0>13 28 1 0 18]116 D<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC >22 20 1 0 25]117 D21 20 1 0 24]118 D30 20 1 0 33]119 D<7FC3FC0F01E00701C007018003810001C20000 E40000EC00007800003800003C00007C00004E000087000107000303800201C00601E01E01E0FF 07FE>23 20 0 0 24]120 D21 29 1 9 24]121 D<3FFF380E200E201C40384078407000E001E001C00380078007010E011E011C0338027006700E FFFE>16 20 1 0 20]122 D22 1 0 -12 23]123 D44 1 0 -12 45]124 D E /fk 1 64 df<07F8001FFE00381F80780F80FC0FC0FC0FC0FC0FC0780F C0301F80001F00003E00007C0000700000E00000E00000C00000C00000C00000C00000C00000C0 0000000000000000000000000001C00003E00007F00007F00007F00003E00001C000>18 32 3 0 25]63 D E /fl 14 118 df39 71 3 0 45]73 D<00007FF00007000007 FFFF000F00001FFFFFC01F00007FFFFFF03F0000FFFFFFFC7F0003FFC00FFEFF0007FE0000FFFF 0007FC00003FFF000FF000001FFF001FF0000007FF001FE0000003FF003FE0000001FF003FC000 0001FF007FC0000000FF007FC00000007F007FC00000007F00FFC00000003F00FFC00000003F00 FFC00000003F00FFE00000003F00FFE00000001F00FFF00000001F00FFF80000001F00FFFC0000 001F00FFFF00000000007FFFC0000000007FFFFE000000007FFFFFE00000003FFFFFFF0000003F FFFFFFF000001FFFFFFFFC00001FFFFFFFFF00000FFFFFFFFFC00007FFFFFFFFE00007FFFFFFFF F00003FFFFFFFFF80000FFFFFFFFFC00007FFFFFFFFE00003FFFFFFFFE00000FFFFFFFFF000001 FFFFFFFF0000003FFFFFFF80000001FFFFFF800000000FFFFFC000000000FFFFC0000000001FFF C0000000000FFFE00000000007FFE00000000003FFE07800000001FFE0F800000000FFE0F80000 0000FFE0F8000000007FE0F8000000007FE0F8000000007FE0FC000000007FE0FC000000007FC0 FC000000007FC0FE000000007FC0FE000000007F80FF00000000FF80FF80000000FF80FFC00000 00FF00FFE0000001FE00FFF8000003FE00FFFE000007FC00FFFF80000FF800FFFFFC007FF000FE 3FFFFFFFE000FC0FFFFFFF8000F803FFFFFF0000F0007FFFF80000E00003FFC00000>51 73 7 1 66]83 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE00 1FFF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007FF800 0FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC0000000000 3FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC000000FFFFFFFC0000 07FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC0003FFC000FFF00003F FC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003FFC00FFF000003FFC00FFF0 00003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000007FFC007FF80000FFFC 007FF80001EFFC003FFC0003EFFC003FFF0007CFFF000FFFC03F8FFFF807FFFFFF07FFFC01FFFF FC03FFFC007FFFF001FFFC0003FF80007FF8>54 46 3 0 58]97 D<007FC00000000000FFFFC0 0000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000000003FF C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001 FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000000000 01FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000 0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000 000001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FFDFF00F FF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007FF00001FFE000 003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FFE000001FFE0001FFE0 00000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF8001FF E000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001 FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF00 01FFE000000FFF0001FFE000000FFF0001FFE000001FFE0001FFE000001FFE0001FFE000001FFC 0001FFE000001FFC0001FFE000003FF80001FFF000003FF80001FFF800007FF00001FFFC0000FF E00001FFFE0001FFC00001FFBF0007FF800001FF1FE01FFE000001FE0FFFFFFC000001FC03FFFF F0000001F800FFFF80000001F0001FF8000000>57 72 4 0 66]98 D<00001FFE00000001FFFF E0000007FFFFF800001FFFFFFE00007FFC07FF0000FFE001FF8001FFC0007FC003FF80003FE007 FF00003FF00FFE00001FF01FFE00000FF81FFC00000FF83FFC00000FFC3FFC000007FC7FFC0000 07FC7FF8000007FC7FF8000007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFF FFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF80000 00007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000003FFC0000001C1F FE0000003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003F0007FF000 1FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF8000>47 46 3 0 54]101 D<00FC0001FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01F FFE00FFFC007FF8003FF0001FE0000FC0000000000000000000000000000000000000000000000 0000000000000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001 FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001 FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001 FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>24 73 4 0 32]105 D<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF80>25 72 4 0 32]108 D<007FC001FFC00000FFE00000FFFFC00FFFF80007FFFC0000FFFFC03FFFFE001FFFFF0000FFFF C0FFFFFF007FFFFF8000FFFFC1FC07FF80FE03FFC000FFFFC3E003FFC1F001FFE00003FFC7C001 FFC3E000FFE00001FFCF0001FFE78000FFF00001FFDE0000FFEF00007FF00001FFDC0000FFEE00 007FF00001FFFC0000FFFE00007FF80001FFF80000FFFC00007FF80001FFF00000FFF800007FF8 0001FFF00000FFF800007FF80001FFF00000FFF800007FF80001FFE00000FFF000007FF80001FF E00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000 FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000 007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FF E00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000 FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000 007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF800FFFFFFC07FFFFFE03FFFFFF0FFFF FFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07F FFFFE03FFFFFF0>92 46 4 0 99]109 D<007FC001FFC00000FFFFC00FFFF80000FFFFC03FFFFE 0000FFFFC0FFFFFF0000FFFFC1FC07FF8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001 FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF000 00FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000 01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFF FFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0>59 46 4 0 66]110 D<00000FFF0000000000FFFFF000000007FFFFFE0000001FFFFFFF8000003FFC 03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE000007FE000FFE000007FF00 0FFC000003FF001FFC000003FF803FFC000003FFC03FF8000001FFC03FF8000001FFC07FF80000 01FFE07FF8000001FFE07FF8000001FFE0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FF F8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001 FFF0FFF8000001FFF07FF8000001FFE07FF8000001FFE07FF8000001FFE07FF8000001FFE03FFC 000003FFC03FFC000003FFC01FFC000003FF801FFE000007FF800FFE000007FF0007FF00000FFE 0003FF80001FFC0001FFC0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF80000007FF FFFE00000000FFFFF0000000000FFF000000>52 46 3 0 59]111 D<007FC00FFC000000FFFFC0 7FFFC00000FFFFC3FFFFF00000FFFFCFFFFFFC0000FFFFDFF01FFF0000FFFFFF8007FF800003FF FE0001FFC00001FFF80000FFE00001FFF00000FFF00001FFE000007FF80001FFE000003FFC0001 FFE000003FFC0001FFE000003FFE0001FFE000001FFE0001FFE000001FFF0001FFE000001FFF00 01FFE000001FFF0001FFE000000FFF0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF 8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F FF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF0001FFE000001FFF0001FFE00000 1FFF0001FFE000001FFE0001FFE000001FFE0001FFE000003FFC0001FFE000003FFC0001FFE000 007FF80001FFF000007FF80001FFF80000FFF00001FFFC0001FFE00001FFFE0003FFC00001FFFF 0007FF800001FFFFE03FFE000001FFEFFFFFFC000001FFE3FFFFF0000001FFE0FFFF80000001FF E01FF800000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001 FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000 01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000000000 0001FFE00000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC00000 0000FFFFFFC000000000>57 66 4 20 66]112 D<000FFF00E0007FFFF3E001FFFFFFE007FFFF FFE00FF800FFE01FC0001FE03F80000FE03F000007E07F000003E07F000003E0FF000003E0FF00 0003E0FF800003E0FFC0000000FFF0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003F FFFFFC001FFFFFFF000FFFFFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF8 00001FFFF8000000FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC000003FCFC000003 FCFE000003F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFF FF80FC7FFFFE00F81FFFF800E003FF8000>38 46 4 0 47]115 D<0001F000000001F000000001 F000000001F000000001F000000001F000000003F000000003F000000003F000000007F0000000 07F000000007F00000000FF00000000FF00000001FF00000003FF00000003FF00000007FF00000 01FFF0000003FFF000000FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF000 0000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0 000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FF F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF001F000 FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F0 007FF001E0007FF803E0003FF803E0003FFC07C0001FFE0F80000FFFFF800007FFFE000001FFFC 0000001FF000>36 66 2 0 46]116 D<007FE000003FF000FFFFE0007FFFF000FFFFE0007FFFF0 00FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF00003FFE00001FFF00001FFE00000FF F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000 FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE000 00FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00001FFF00001FFE00001FFF00001FFE00001FFF00001FFE00003FFF000 00FFE00007FFF00000FFE0000F7FF000007FE0001F7FF000007FF0003E7FF800003FFC00FC7FFF E0001FFFFFF87FFFE00007FFFFE07FFFE00001FFFF807FFFE000003FFE007FFFE0>59 46 4 0 66]117 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300 %%Feature: *ManualFeed False TeXDict begin @letter %%EndSetup %%Page: 142 1 bop 75 359 a fh(Section)35 b(7)75 569 y fl(Initial)43 b(Implemen)m(tation)f (Subset)75 812 y fg(7.1)59 b(Intro)r(duction)75 919 y fj(This)17 b(c)o(hapter)f(de\014nes)h(the)g(minimal)h(subset)e(of)g(MPI)g(for)g(initial) i(implemen)o(tation.)25 b(This)17 b(subset)f(is)75 975 y(b)q(eing)c (de\014ned)h(so)d(that)g(consisten)o(t)i(implemen)o(tations)g(can)f(app)q (ear)g(more)g(rapidly)l(.)20 b(It)11 b(w)o(as)f(recognized)75 1032 y(early)17 b(in)h(the)f(pro)q(cess)g(that)f(MPI)h(needed)h(to)e(app)q (ear)h(as)f(quic)o(kly)i(as)f(p)q(ossible)h(and)f(practical.)26 b(The)75 1088 y(creation)16 b(of)f(a)g(subset)h(will)h(hop)q(efully)g(allo)o (w)f(users)g(earlier)g(access)g(to)e(the)i(standard)f(and)h(still)h(allo)o(w) 75 1145 y(for)e(the)g(writing)h(of)e(p)q(ortable)i(message)f(passing)g(co)q (des.)166 1204 y(This)20 b(subset)g(should)h(not)e(in)i(an)o(y)e(w)o(a)o(y)g (b)q(e)h(construed)g(as)f(a)h(limitation)h(on)e(MPI)h(implemen-)75 1260 y(tations.)35 b(It)20 b(is)h(strictly)g(the)g(minim)o(um)g(necessary)g (to)e(ha)o(v)o(e)h(an)h(initial)h(MPI)e(subset)h(conforming)75 1317 y(implemen)o(tation.)28 b(It)18 b(is)g(hop)q(ed)g(that)f(an)g (o\016cially)i(sanctioned)g(subset)e(will)i(encourage)f(and)g(allo)o(w)75 1373 y(implemen)o(tors)j(to)e(in)o(tro)q(duce)i(MPI)f(in)g(a)g(more)g(timely) g(fashion.)35 b(It)20 b(should)h(b)q(e)f(noted,)h(ho)o(w)o(ev)o(er,)75 1429 y(that)d(implemen)o(tation)h(of)f(the)g(subset)h(do)q(es)g(not)e(mak)o (e)h(an)g(implemen)o(tation)i(conform)e(with)g(MPI.)75 1486 y(The)h(subset)g(is)g(a)f(p)q(oten)o(tial)h(\014rst)g(step)f(in)i(the)f(pro)q (cess.)30 b(All)20 b(implemen)o(tations)g(shall)g(conform)e(to)75 1542 y(the)f(en)o(tire)g(standard;)f(implemen)o(tations)i(are)e(encouraged)h (to)f(do)g(the)h(full)g(standard)f(as)h(rapidly)g(as)75 1599 y(p)q(ossible.)166 1658 y(The)f(subset)g(presen)o(ted)g(is)h(consisten)o(t)f (with)g(the)g(complete)h(MPI)f(standard.)21 b(This)16 b(w)o(as)g(an)f(im-)75 1714 y(p)q(ortan)o(t)e(goal)h(so)g(the)h(additional)g(MPI)f(features)g(could) i(b)q(e)e(added)h(without)g(c)o(hanging)f(an)o(y)g(previous)75 1771 y(functionalit)o(y)g(from)e(the)h(user's)g(p)q(ersp)q(ectiv)o(e.)20 b(Th)o(us,)13 b(users)g(can)g(b)q(e)g(assured)g(that)f(programs)g(written)75 1827 y(no)o(w)f(for)h(the)g(subset)g(will)h(run)f(without)g(mo)q (di\014cation)h(under)g(the)f(full)h(MPI)f(standard.)18 b(F)l(urthermore,)75 1884 y(using)i(additional)g(features)f(of)f(the)h(full)i(MPI)e(standard)f(in) i(the)f(future)g(will)i(not)d(require)i(c)o(hanges)75 1940 y(to)e(co)q(de)i(already)f(written.)30 b(This)20 b(requires)f(that)g(the)f (MPI)h(functions)h(ha)o(v)o(e)e(their)i(full)g(calling)g(ar-)75 1997 y(gumen)o(ts)e(in)h(the)f(subset.)28 b(T)l(o)18 b(ac)o(hiev)o(e)h(this)f (goal,)g(the)g(subset)h(will)g(generally)h(limit)f(access)f(to)g(full)75 2053 y(MPI)d(functionalit)o(y)h(through)f(complete)g(elimination)i(of)e (functions)g(or)g(limitations)h(on)f(the)g(creation)75 2110 y(mec)o(hanisms)h(for)e(certain)i(MPI)f(input)h(argumen)o(ts.)75 2267 y fg(7.2)59 b(Criteria)21 b(and)e(Rationale)75 2374 y fj(Ha)o(ving)g(the)g(subset)g(b)q(e)h(consisten)o(t)f(with)g(the)g(en)o(tire) g(MPI)g(standard)g(w)o(as)f(considered)i(critical)h(to)75 2430 y(the)16 b(e\013ort.)22 b(In)16 b(addition)i(to)d(this,)h(there)h(w)o(ere)e (man)o(y)h(p)q(ossible)i(criteria)f(to)e(use)h(in)h(determining)h(the)75 2487 y(elemen)o(ts)d(of)e(MPI)h(to)f(include)j(in)f(the)f(subset.)20 b(The)14 b(main)g(criteria)h(used)f(w)o(ere)g(that)f(the)h(MPI)g(subset)75 2543 y(should)131 2647 y(1.)22 b(con)o(tain)13 b(routines)h(that)e(are)h(as)g (close)h(as)f(p)q(ossible)i(to)e(curren)o(t)g(standard)g(practice)h(to)f (minimize)189 2704 y(the)i(e\013ort)f(to)h(p)q(ort)f(co)q(des.)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 143 2 bop 75 -100 a ff(7.3.)34 b(SUBSET)16 b(FUNCTIONALITY)1036 b fj(143)131 45 y(2.)22 b(con)o(tain)15 b(new)g(and)h(imp)q(ortan)o(t)f(MPI)g (features.)131 164 y(3.)22 b(allo)o(w)17 b(dev)o(elop)q(ers)i(to)e(b)q(e)i (able)f(to)f(ha)o(v)o(e)g(the)h(subset)g(sho)o(w)f(up)h(as)f(rapidly)i(as)e (p)q(ossible)i(while)189 220 y(still)d(meeting)g(the)f(other)g(criteria.)166 338 y(There)i(w)o(ere)g(man)o(y)f(rationales)h(for)g(these)g(criteria.)26 b(It)17 b(w)o(as)f(recognized)i(that)e(it)h(is)h(imp)q(ossible)75 395 y(to)d(come)g(up)h(with)f(an)g(ideal)i(subset,)e(and)g(compromises)h(w)o (ere)f(necessary)l(.)20 b(It)c(w)o(as)e(felt)i(that)e(curren)o(t)75 451 y(users)22 b(should)g(b)q(e)h(comfortable)e(in)h(migrating)g(to)f(MPI.)g (Th)o(us,)i(the)f(subset)f(should)i(con)o(tain)f(the)75 508 y(message)16 b(passing)h(elemen)o(ts)g(that)f(represen)o(t)g(common)g (practice)h(to)q(da)o(y)l(.)23 b(F)l(urthermore,)16 b(it)h(w)o(as)f(felt)75 564 y(that)21 b(the)h(initial)i(\(and)e(later\))f(v)o(ersion)h(of)g(MPI)g (should)g(main)o(tain)h(e\016ciency)l(.)41 b(Otherwise)23 b(users)75 621 y(could)e(su\013er)e(from)g(disenc)o(han)o(tmen)o(t)h(with)g(MPI)f(on)h (their)g(\014rst)f(usage)h(and)f(ma)o(y)g(nev)o(er)h(giv)o(e)g(the)75 677 y(standard)12 b(a)g(second)g(try)l(.)19 b(Ha)o(ving)12 b(the)h(common)e(practice)i(routines)g(in)g(the)f(subset)h(should)g (encourage)75 734 y(dev)o(elop)q(ers)k(to)f(optimize)h(these)g(routines)f(in) h(the)g(initial)h(v)o(ersion)f(of)e(MPI.)h(Also,)h(though)f(some)g(felt)75 790 y(that)e(the)g(p)q(ortabilit)o(y)h(o\013ered)f(b)o(y)g(the)h(MPI)f (subset)h(w)o(as)e(su\016cien)o(t)i(to)f(en)o(tice)h(users,)f(man)o(y)g(felt) h(that)75 846 y(the)j(subset)g(should)g(con)o(tain)g(some)g(new)g(features)f (o)o(v)o(er)g(and)h(ab)q(o)o(v)o(e)f(curren)o(t)h(common)f(practice)h(as)75 903 y(an)i(added)h(incen)o(tiv)o(e.)36 b(The)20 b(additional)h(items)g (selected)g(w)o(ere)f(mean)o(t)f(to)g(represen)o(t)i(some)e(of)h(the)75 959 y(signi\014can)o(t)e(new)f(features)f(of)h(MPI.)f(Balanced)i(against)f (these)g(\014rst)f(t)o(w)o(o)g(goals)h(is)g(the)g(need)h(for)e(the)75 1016 y(subset)e(to)f(sho)o(w)g(up)i(in)f(a)g(timely)h(fashion.)k(Th)o(us,)14 b(eac)o(h)g(feature)g(c)o(hosen)g(for)f(inclusion)j(in)f(the)f(subset)75 1072 y(w)o(as)21 b(deemed)h(of)f(su\016cien)o(t)h(imp)q(ortance)g(to)f(out)o (w)o(eigh)h(its)f(added)h(complexit)o(y)h(in)f(implemen)o(ting)75 1129 y(the)e(subset.)34 b(Though)20 b(some)f(functions)i(seem)f(easy)f(to)g (implemen)o(t,)j(there)e(are)g(often)f(o)o(v)o(erlo)q(ok)o(ed)75 1185 y(costs)i(in)i(testing,)f(do)q(cumen)o(tation)h(and)e(dev)o(elopmen)o(t) i(that)e(w)o(ere)g(considered)i(b)q(efore)f(a)f(feature)75 1242 y(w)o(as)d(added)h(to)f(the)h(MPI)g(subset.)31 b(Inclusion)21 b(of)d(to)q(o)g(man)o(y)g(routines)h(migh)o(t)g(lead)h(to)e(mo)q(derately)75 1298 y(e\016cien)o(t)j(implemen)o(tation)h(of)e(them)h(all)g(instead)h(of)e (a)g(v)o(ery)g(e\016cien)o(t)i(and)f(p)q(ossibly)h(more)e(useful)75 1355 y(implemen)o(tation)c(of)f(a)g(smaller)h(subset.)75 1533 y fg(7.3)59 b(Subset)19 b(F)n(unctionalit)n(y)75 1646 y fj(The)h(sections)g (b)q(elo)o(w)g(con)o(tain)f(a)h(general)g(summary)e(and)i(sp)q(eci\014c)h (routines)f(of)f(what)g(is)h(included)75 1703 y(in/excluded)14 b(from)e(the)g(subset)g(for)f(eac)o(h)h(c)o(hapter.)19 b(The)12 b(general)g(requiremen)o(ts)h(of)e(eac)o(h)h(c)o(hapter)g(also)75 1759 y(hold)h(for)f(the)h(subset.)19 b(As)12 b(examples,)h(the)g(message)f (en)o(v)o(elop)q(e)h(in)h(subsection)f(3.2.2,)e(the)i(seman)o(tics)f(in)75 1816 y(section)k(3.4,)f(the)h(t)o(yp)q(e)g(matc)o(hing)g(in)g(section)h(3.5)e (and)h(the)g(comm)o(unication)g(ob)s(jects)f(in)i(subsection)75 1872 y(3.8.1)d(are)g(all)j(part)d(of)h(the)g(subset.)75 2029 y fb(7.3.1)49 b(P)o(oint)16 b(to)h(P)o(oint)f(F)o(unctionalit)o(y)75 2127 y fj(The)j(p)q(oin)o(t)h(to)e(p)q(oin)o(t)i(routines)f(are)g(not)g(only) h(cen)o(tral)f(to)f(MPI)h(but)h(represen)o(t)f(common)f(practice)75 2183 y(to)q(da)o(y)l(.)k(As)16 b(suc)o(h,)g(the)h(ma)s(jorit)o(y)d(of)i(the)g (functionalit)o(y)h(in)g(this)g(c)o(hapter)f(is)g(included)j(in)e(the)f (subset.)75 2240 y(Deriv)o(ed)f(datat)o(yp)q(es)e(represen)o(t)h(a)g (signi\014can)o(t)h(new)f(feature)g(in)h(MPI)f(and)h(is)f(included)j(in)e (the)f(subset.)75 2296 y(Ho)o(w)o(ev)o(er,)20 b(only)h(basic)g(datat)o(yp)q (es)f(of)g(section)h(3.2.1)e(will)j(b)q(e)f(allo)o(w)o(ed)g(as)f(input)h(to)f (the)g(datat)o(yp)q(e)75 2353 y(construction)15 b(routines)h(describ)q(ed)h (in)f(section)g(3.13.1.)166 2415 y(T)l(o)e(reduce)h(the)g(di\016cult)o(y)g (of)f(implemen)o(tation,)i(sev)o(eral)e(features)g(w)o(ere)g(left)h(out)f(of) g(the)g(subset.)75 2472 y(The)j(abilit)o(y)g(to)f(test)f(for)h(m)o(ultiple)i (completions)g(of)d(messages)h(w)o(as)g(remo)o(v)o(ed.)22 b(Also,)17 b(the)f(abilit)o(y)i(to)75 2528 y(cancel)e(a)e(message)f(and)i(use)g(p)q (ersisten)o(t)g(comm)o(unication)g(ob)s(jects)e(has)h(b)q(een)i(remo)o(v)o (ed.)j(Finally)l(,)d(the)75 2585 y(routines)g(asso)q(ciated)f(with)h(ready)f (and)g(sync)o(hronous)g(comm)o(unication)h(mo)q(des)g(w)o(ere)f(excluded.)166 2647 y(The)f(table)h(b)q(elo)o(w)g(con)o(tains)f(a)g(listing)i(b)o(y)e (section)h(of)f(whic)o(h)h(routines)f(from)g(the)g(p)q(oin)o(t)h(to)e(p)q (oin)o(t)75 2704 y(comm)o(unication)j(c)o(hapter)f(are)g(included)j(and)d (excluded)i(from)e(the)g(subset.)-32 46 y fi(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 144 3 bop 75 -100 a fj(144)615 b ff(SECTION)16 b(7.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)120 45 y fj(Section)62 b(Title)400 b(Included)414 b(Excluded)75 68 y 1828 2 v 120 120 a(3.2)146 b(Basic)16 b(Send)g(Op)q(eration)63 b fa(MPI)s 14 2 v 13 w(SEND)367 b fj(||)120 189 y(3.2.1)110 b(Message)15 b(Data)217 b(All)17 b(t)o(yp)q(es)402 b(||)120 258 y(3.3)146 b(Basic)16 b(Recv)g(Op)q(eration)61 b fa(MPI)s 14 2 v 13 w(RECV)369 b fj(||)120 327 y(3.3.1)110 b(Return)16 b(Status)213 b fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(SOURCE)205 b fj(||)820 383 y fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(T)l(A)o(G)820 439 y(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(COUNT)120 508 y fj(3.7)146 b(Comm.)19 b(Mo)q(des)202 b(Standard)400 b fa(MPI)s 14 2 v 13 w(RSEND)1402 565 y(MPI)s 14 2 v 13 w(SSEND)120 634 y fj(3.8.2)110 b(Comm.)19 b(Initiation)147 b fa(MPI)s 14 2 v 13 w(ISEND)354 b(MPI)s 14 2 v 13 w(IRSEND)820 690 y(MPI)s 14 2 v 13 w(IRECV)i(MPI)s 14 2 v 13 w(ISSEND)120 759 y fj(3.8.3)110 b(Comm.)19 b(Completion)102 b fa(MPI)s 14 2 v 13 w(W)l(AIT)371 b fj(||)820 816 y fa(MPI)s 14 2 v 13 w(TEST)120 884 y fj(3.8.3)110 b(Multiple)17 b(Completion)83 b(||)492 b fa(MPI)s 14 2 v 13 w(W)l(AIT)l(ANY)1402 941 y(MPI)s 14 2 v 13 w(TEST)l(ANY)1402 997 y(MPI)s 14 2 v 13 w(W)l(AIT)l(ALL)1402 1054 y(MPI)s 14 2 v 13 w(TEST)l(ALL)120 1123 y fj(3.9)146 b(Prob)q(e)15 b(&)h(Cancel)178 b fa(MPI)s 14 2 v 13 w(PROBE)336 b(MPI)s 14 2 v 13 w(CANCEL)820 1179 y(MPI)s 14 2 v 13 w(IPROBE)323 b(MPI)s 14 2 v 13 w(TEST)s 14 2 v 14 w(CANCELLED)820 1236 y(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(COUNT)820 1292 y(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(ELEMENT)120 1361 y fj(3.10)123 b(P)o(ersisten)o(t)15 b(Comm.)139 b(||)492 b fa(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(SEND)355 1417 y fj(Ob)s(jects)894 b fa(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(RSEND)1402 1474 y(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(SSEND)1402 1530 y(MPI)s 14 2 v 13 w(CREA)l(TE)s 14 2 v 15 w(RECV)1402 1587 y(MPI)s 14 2 v 13 w(ST)l(ART)1402 1643 y(MPI)s 14 2 v 13 w(COMMOBJ)s 14 2 v 15 w(FREE)120 1712 y fj(3.11)123 b(Send-receiv)o(e)252 b fa(MPI)s 14 2 v 13 w(SENDRECV)g(MPI)s 14 2 v 13 w(EX)o(CHANGE)120 1781 y fj(3.12)123 b(Null)17 b(pro)q(cess)252 b fc(MPI)r 13 2 v 13 w(PROCNULL)278 b fj(||)120 1850 y(3.13.1)87 b(Deriv)o(ed)16 b(Datat)o(yp)q(es)122 b fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(CONTIGUOUS)62 b fj(See)16 b(text)f(ab)q(o)o(v)o(e)820 1906 y fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(VECTOR)820 1963 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(HVECTOR)820 2019 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(INDEXED)820 2076 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(HINDEXED)820 2132 y(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(STRUCT)120 2201 y fk(??)155 b fj(Address)16 b(and)f(exten)o(t)109 b fa(MPI)s 14 2 v 13 w(ADDRESS)355 2258 y fj(functions)285 b fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(EXTENT)120 2327 y fk(??)155 b fj(Lo)o(w)o(er-b)q(ound)16 b(and)147 b fa(MPI)s 14 2 v 13 w(LB)355 2383 y fj(upp)q(er-b)q(ound)212 b fa(MPI)s 14 2 v 13 w(UB)120 2452 y fk(??)155 b fj(Commit)15 b(and)g(free)158 b fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(COMMIT)164 b fj(||)820 2508 y fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(FREE)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 145 4 bop 75 -100 a ff(7.3.)34 b(SUBSET)16 b(FUNCTIONALITY)1036 b fj(145)75 45 y fb(7.3.2)49 b(Collective)17 b(Communication)g(F)o (unctionalit)o(y)75 148 y fj(As)h(with)f(p)q(oin)o(t)h(to)f(p)q(oin)o(t)h (functionalit)o(y)l(,)i(collectiv)o(e)f(comm)o(unication)f(is)g(common)g (practice)g(to)q(da)o(y)l(,)75 204 y(and)g(the)h(functionalit)o(y)g(is)g (generally)g(included)i(in)e(the)f(subset.)29 b(F)l(urthermore,)18 b(the)g(abilit)o(y)i(to)d(de-)75 261 y(\014ne)h(arbitrary)e(groups)h(in)h (the)f(MPI)g(subset,)g(whic)o(h)h(are)f(then)g(asso)q(ciated)h(with)f(a)g (comm)o(unicator,)75 317 y(allo)o(ws)k(the)g(user)f(to)g(p)q(erform)h (collectiv)o(e)h(comm)o(unication)g(op)q(erations)e(o)o(v)o(er)g(an)h (arbitrary)f(set)g(of)75 374 y(pro)q(cesses.)32 b(This)20 b(increases)f(the)h (functionalit)o(y)g(of)f(the)g(collectiv)o(e)i(comm)o(unication)e(routines)h (o)o(v)o(er)75 430 y(what)15 b(is)g(commonly)h(a)o(v)m(ailable)h(to)q(da)o(y) l(.)166 496 y(T)l(o)i(ease)h(initial)i(implemen)o(tation,)f(the)f(user)g (de\014ned)h(reduce)f(functions)h(are)e(excluded)j(from)75 552 y(the)d(subset.)33 b(Note)19 b(that)f(all)j(of)d(the)i(system)f(pro)o (vided)h(reduce)g(functions)g(listed)h(in)f(section)g(4.5.1)75 608 y(are)i(include)i(in)f(the)f(subset.)40 b(Also,)24 b(the)e(scan)g (functions)h(are)f(excluded)i(from)d(the)h(subset.)41 b(Fi-)75 665 y(nally)l(,)25 b(the)e(generalized)h(\\v")e(v)o(ersions)h(of)f(routines)h (are)f(excluded)j(from)c(the)i(subset)g(as)f(w)o(ell)h(as)75 721 y fa(MPI)s 14 2 v 13 w(REDUCE)s 14 2 v 14 w(SCA)l(TTER)p fj(.)166 787 y(The)f(table)g(b)q(elo)o(w)g(con)o(tains)f(a)g(listing)i(b)o(y) f(section)g(of)f(whic)o(h)h(routines)g(from)f(the)g(collectiv)o(e)75 843 y(comm)o(unication)16 b(c)o(hapter)f(are)g(included)j(and)d(excluded)i (from)e(the)g(subset.)120 960 y(Section)62 b(Title)419 b(Included)247 b(Excluded)75 982 y 1829 2 v 120 1034 a(4.3)146 b(Barrier)15 b(Sync)o(h.)227 b fa(MPI)s 14 2 v 13 w(BARRIER)130 b fj(||)120 1103 y(4.4.1)110 b(Broadcast)314 b fa(MPI)s 14 2 v 13 w(BCAST)172 b fj(||)120 1172 y(4.4.2)110 b(Gather)374 b fa(MPI)s 14 2 v 13 w(GA)l(THER)142 b(MPI)s 14 2 v 13 w(GA)l(THERV)120 1241 y fj(4.4.3)110 b(Scatter)372 b fa(MPI)s 14 2 v 13 w(SCA)l(TTER)119 b(MPI)s 14 2 v 13 w(SCA)l(TTERV)120 1310 y fj(4.4.4)110 b(All-to-all)17 b(broadcast)128 b fa(MPI)s 14 2 v 13 w(ALLCAST)122 b(MPI)s 14 2 v 13 w(ALLCASTV)120 1379 y fj(4.4.5)110 b(All-to-all)17 b(scatter-gather)44 b fa(MPI)s 14 2 v 13 w(ALL)l(TO)o(ALL)98 b(MPI)s 14 2 v 13 w(ALL)l(TO)o(ALL)-5 b(V)120 1448 y fj(4.5.1)110 b(Reduce)371 b fa(MPI)s 14 2 v 13 w(REDUCE)141 b(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(REDUCE)1254 1504 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(REDUCEA)839 1561 y(MPI)s 14 2 v 13 w(ALLREDUCE)61 b(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(ALLREDUCE)1254 1617 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(ALLREDUCEA)1254 1674 y(MPI)s 14 2 v 13 w(REDUCE)s 14 2 v 14 w(SCA)l(TTER)1254 1730 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(REDUCE)s 14 2 v 14 w(SCA)l(TTER)1254 1786 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(REDUCE)s 14 2 v 14 w(SCA)l(TTERA)120 1855 y fj(4.5.2)110 b(Scan)421 b(||)325 b fa(MPI)s 14 2 v 13 w(SCAN)1254 1912 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(SCAN)1254 1968 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(SCANA)75 2140 y fb(7.3.3)49 b(Groups,)15 b(Contexts,)g(and)i (Communicato)o(rs)e(F)o(unctionalit)o(y)75 2243 y fj(Groups,)d(con)o(texts)f (and)h(comm)o(unicators)g(are)g(used)g(throughout)f(the)h(MPI)g(standard.)19 b(Though)12 b(these)75 2300 y(concepts)f(are)g(used)h(in)g(some)f(pac)o(k)m (ages)g(to)q(da)o(y)l(,)g(their)g(inclusion)j(in)e(MPI)f(represen)o(ts)g(a)g (signi\014can)o(t)h(new)75 2356 y(feature)k(o)o(v)o(er)g(what)f(is)i (generally)h(a)o(v)m(ailable)g(in)f(common)f(practice)h(to)q(da)o(y)l(.)23 b(F)l(or)16 b(these)h(reasons,)f(this)75 2413 y(functionalit)o(y)j(is)f (included)i(in)f(the)f(subset.)27 b(Ho)o(w)o(ev)o(er,)17 b(implemen)o(tation) i(of)e(groups,)h(con)o(texts)f(and)75 2469 y(comm)o(unicators)f(is)h(also)f (a)g(signi\014can)o(t)h(e\013ort.)22 b(As)16 b(a)g(compromise,)h(the)f(MPI)g (in)o(tra-comm)o(unicator)75 2525 y(functionalit)o(y)e(is)g(included)h(but)e (the)g(in)o(tra-comm)o(unicator)g(functionalit)o(y)h(is)f(excluded.)21 b(The)13 b(cac)o(hing)75 2582 y(facilit)o(y)j(w)o(as)f(included)i(to)e(supp)q (ort)g(the)h(top)q(ology)e(functionalit)o(y)j(and)e(extensions.)166 2647 y(The)22 b(table)g(b)q(elo)o(w)g(con)o(tains)g(a)f(listing)i(b)o(y)f (section)g(of)f(whic)o(h)h(routines)g(from)f(the)h(\\Groups,)75 2704 y(Con)o(texts,)14 b(and)h(Comm)o(unicators")f(c)o(hapter)h(are)g (included)j(and)d(excluded)j(from)c(the)h(subset.)-32 46 y fi(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 146 5 bop 75 -100 a fj(146)615 b ff(SECTION)16 b(7.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)75 45 y fj(Section)g(Title)315 b(Included)422 b(Excluded)75 68 y 1837 2 v 52 x(3.2.4)64 b(Prede\014ned)17 b(Comm.)39 b fa(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(W)o(ORLD)172 b fj(||)75 189 y(3.3.1)64 b(Group)15 b(Accessors)79 b fa(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(SIZE)230 b fj(||)644 245 y fa(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(RANK)644 302 y(MPI)s 14 2 v 12 w(TRANSLA)l(TE)s 14 2 v 15 w(RANKS)75 371 y fj(3.3.2)64 b(Group)15 b(Const.)138 b fa(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(UNION)182 b fj(||)644 427 y fa(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(INTERSECTION)644 483 y(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(DIFFERENCE)644 540 y(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(INCL)644 596 y(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(EX)o(CL)644 653 y(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(RANGE)s 14 2 v 15 w(INCL)644 709 y(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(RANGE)s 14 2 v 15 w(EX)o(CL)75 778 y fj(3.3.3)64 b(Group)15 b(Destruct.)83 b fa(MPI)s 14 2 v 12 w(GROUP)s 14 2 v 15 w(FREE)214 b fj(||)75 847 y(3.4.1)64 b(Comm.)19 b(Access.)103 b fa(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(SIZE)241 b fj(||)644 904 y fa(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(RANK)644 960 y(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(GROUP)75 1029 y fj(3.4.2)64 b(Comm.)19 b(Const.)116 b fa(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(DUP)241 b fj(||)644 1085 y fa(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(MAKE)644 1142 y(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(SPLIT)75 1211 y fj(3.4.3)64 b(Comm.)19 b(Destruct.)61 b fa(MPI)s 14 2 v 12 w(COMM)s 14 2 v 14 w(FREE)225 b fj(||)75 1280 y(3.6.1)64 b(Comm.)19 b(Access.)103 b(||)500 b fa(MPI)s 14 2 v 13 w(COMM)s 14 2 v 13 w(ST)l(A)l(T)1234 1336 y(MPI)s 14 2 v 13 w(COMM)s 14 2 v 13 w(MERGE)75 1405 y fj(3.6.2)64 b(In)o(terComm.)19 b(Const.)h(||)500 b fa(MPI)s 14 2 v 13 w(INTERCOMM)s 14 2 v 14 w(MAKE)264 1461 y fj(&)16 b(Destr.)797 b fa(MPI)s 14 2 v 13 w(INTERCOMM)s 14 2 v 14 w(ST)l(ART)1234 1518 y(MPI)s 14 2 v 13 w(INTERCOMM)s 14 2 v 14 w(FINISH)75 1587 y fj(3.6.3)64 b(Name)15 b(Service)141 b(||)500 b fa(MPI)s 14 2 v 13 w(INTERCOMM)s 14 2 v 14 w(NAME)1234 1643 y(MPI)s 14 2 v 13 w(INTERCOMM)s 14 2 v 14 w(NAME)s 14 2 v 13 w(ST)l(ART)75 1712 y fj(3.7.1)64 b(F)l(unctionalit)o(y)148 b(||)500 b fa(MPI)s 14 2 v 13 w(A)l(TTRIBUTE)s 14 2 v 14 w(ALLOC)1234 1769 y(MPI)s 14 2 v 13 w(A)l(TTRIBUTE)s 14 2 v 14 w(FREE)1234 1825 y(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(A)l(TTRIBUTE)s 14 2 v 14 w(KEY)1234 1882 y(MPI)s 14 2 v 13 w(SET)s 14 2 v 14 w(A)l(TTRIBUTE)1234 1938 y(MPI)s 14 2 v 13 w(TEST)s 14 2 v 13 w(A)l(TTRIBUTE)1234 1994 y(MPI)s 14 2 v 13 w(DELETE)s 14 2 v 13 w(A)l(TTRIBUTE)75 2275 y fb(7.3.4)49 b(T)l(op)q(ology)19 b(F)o(unctionalit)o(y)75 2401 y fj(The)d(capabilit)o(y)h (presen)o(ted)f(in)g(the)g(pro)q(cess)f(top)q(ology)h(c)o(hapter)f(represen)o (ts)g(a)h(new)f(functionalit)o(y)i(in)75 2457 y(MPI)i(and)g(is)h(not)f (generally)h(common)f(practice)h(to)q(da)o(y)l(.)31 b(T)l(o)19 b(mak)o(e)f(this)i(a)o(v)m(ailable)h(in)f(the)f(subset,)75 2514 y(the)h(functionalit)o(y)i(asso)q(ciated)f(with)f(Cartesian)h(top)q (ologies)f(is)h(included)i(but)e(the)f(general)h(graph)75 2570 y(top)q(ologies)16 b(are)f(excluded.)166 2647 y(The)22 b(table)h(b)q(elo)o(w) g(con)o(tains)f(a)g(listing)i(b)o(y)e(section)h(of)f(whic)o(h)h(routines)f (from)g(the)g(top)q(ology)75 2704 y(c)o(hapter)15 b(are)g(included)j(and)d (excluded)i(from)e(the)g(subset.)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 147 6 bop 75 -100 a ff(7.3.)34 b(SUBSET)16 b(FUNCTIONALITY)1036 b fj(147)120 45 y(Section)62 b(Title)404 b(Included)273 b(Excluded)75 68 y 1644 2 v 120 120 a(4.4.1)110 b(Lo)o(w{lev)o(el)16 b(top)q(ol.)k(func.)58 b fa(MPI)s 14 2 v 13 w(MAP)s 14 2 v 13 w(CART)109 b(MPI)s 14 2 v 13 w(MAP)s 14 2 v 14 w(GRAPH)120 189 y fj(4.4.2)h(High{lev)o(el)17 b(top)q(ol.)j(func.)46 b fa(MPI)s 14 2 v 13 w(CART)224 b(MPI)s 14 2 v 13 w(GRAPH)120 258 y fj(4.4.3)110 b(T)l(op)q(ol.)20 b(inquiry)d(func.)99 b fa(MPI)s 14 2 v 13 w(INQMAP)824 314 y(MPI)s 14 2 v 13 w(INQCARTDIM)60 b(MPI)s 14 2 v 13 w(INQGRAPHDIMS)824 371 y(MPI)s 14 2 v 13 w(INQCART)146 b(MPI)s 14 2 v 13 w(INQGRAPH)824 427 y(MPI)s 14 2 v 13 w(INQRANK)824 483 y(MPI)s 14 2 v 13 w(INQLOC)120 552 y fj(4.4.4)110 b(P)o(artitioning)16 b(of)e(Cart.)88 b fa(MPI)s 14 2 v 13 w(P)l(ARTC)824 609 y(MPI)s 14 2 v 13 w(SHIFT)s 14 2 v 13 w(ID)824 665 y(MPI)s 14 2 v 13 w(MAKDIM)75 816 y fb(7.3.5)49 b(Language)18 b(Binding)75 994 y fe(Discussion:)34 b fd(mo)o(v)o(e)12 b(to)i(c)o(hapter)h(2,)e(\014x)h fe(??)p fd(??)166 1139 y fj(The)20 b(subset)g(shall)h(con)o(tain)f(the)f(F)l(ortran)g(77)g(and)h(C)f(language)h (bindings.)36 b(All)21 b(the)f(routines)75 1195 y(included)e(in)e(the)f (subset)h(will)g(conform)f(to)g(the)g(rules)h(stated)e(in)i(c)o(hapter)f fk(??)p fj(.)75 1346 y fb(7.3.6)49 b(MPI)17 b(Environmental)g(Management)75 1441 y fj(The)i(abilit)o(y)i(for)d(the)i(user)f(to)g(mak)o(e)f(inquiries)k (of)c(the)i(MPI)f(system)g(is)g(an)g(imp)q(ortan)o(t)g(feature)g(in)75 1498 y(p)q(ortable)g(programming.)28 b(F)l(or)18 b(this)g(reason)g(most)g(of) g(the)g(functions)h(are)f(included)j(in)e(the)f(subset.)75 1554 y(Ho)o(w)o(ev)o(er,)11 b(the)i(abilit)o(y)g(for)f(the)g(user)h(to)e(sp)q (ecify)j(an)e(error)g(handler)h(is)g(not)e(included)k(in)e(the)g(subset)f (nor)75 1611 y(is)18 b(the)f(abilit)o(y)h(to)f(unpac)o(k)g(deriv)o(ed)h (datat)o(yp)q(es.)25 b(The)17 b(\014rst)g(is)h(consisten)o(t)f(with)g(not)g (including)j(user)75 1667 y(called)d(functions)f(in)g(the)f(subset)h(and)f (the)h(second)g(is)f(of)g(minimal)i(impact)f(since)g(deriv)o(ed)h(datat)o(yp) q(es)75 1724 y(can)e(only)h(ha)o(v)o(e)f(basic)h(datat)o(yp)q(es)e(in)i (them.)166 1785 y(The)e(table)h(b)q(elo)o(w)g(con)o(tains)f(a)g(listing)i(b)o (y)e(section)h(of)f(whic)o(h)h(routines)f(from)g(the)g(MPI)h(En)o(viron-)75 1842 y(men)o(tal)g(Managemen)o(t)f(c)o(hapter)h(are)g(included)j(and)e (excluded)h(from)d(the)h(subset.)75 1958 y(Section)h(Title)214 b(Included)513 b(Excluded)75 1980 y 1883 2 v 53 x(5.1)100 b(Implem.)21 b(Info.)35 b fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(V)l(ALID)s 14 2 v 13 w(T)l(A)o(G)s 14 2 v 14 w(RANGE)75 2102 y fj(5.1.1)64 b(Bu\013ering)127 b fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(BUFFER)s 14 2 v 14 w(P)l(ARAMS)543 2158 y(MPI)s 14 2 v 13 w(SUGGEST)s 14 2 v 15 w(BUFFER)s 14 2 v 14 w(P)l(ARAMS)543 2215 y(MPI)s 14 2 v 13 w(USER)s 14 2 v 14 w(SPECIFIES)s 14 2 v 14 w(BUFFER)75 2283 y fj(5.2)100 b(Error)14 b(handling)j fa(MPI)s 14 2 v 13 w(GET)s 14 2 v 14 w(ERRORMODE)543 2340 y(MPI)s 14 2 v 13 w(SET)s 14 2 v 14 w(ERRORMODE)203 b(MPI)s 14 2 v 13 w(SET)s 14 2 v 14 w(ERRHANDLER)543 2396 y(MPI)s 14 2 v 13 w(ERROR)s 14 2 v 15 w(STRING)75 2465 y fj(5.3)100 b(\\Unpac)o(king")734 b fa(MPI)s 14 2 v 13 w(TYPE)s 14 2 v 14 w(QUERY)s 14 2 v 15 w(CONSTRUCTOR)75 2534 y fj(5.4)100 b(Startup)157 b fa(MPI)s 14 2 v 13 w(INIT)543 2591 y(MPI)s 14 2 v 13 w(FINALIZE)543 2647 y(MPI)s 14 2 v 13 w(INITIALIZED)543 2704 y(MPI)s 14 2 v 13 w(ABORT)-32 46 y fi(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 148 7 bop 75 -100 a fj(148)615 b ff(SECTION)16 b(7.)34 b(INITIAL)17 b(IMPLEMENT)l(A)l(TION)f(SUBSET)75 45 y fb(7.3.7)49 b(Pro\014ling)18 b(F)o(unctionalit)o(y)75 131 y fj(Pro\014ling)12 b(is)f(a)g(capabilit)o(y)h (whic)o(h)g(will)h(b)q(e)e(of)g(great)f(utilit)o(y)i(in)g(MPI)f(for)f (determining)j(the)e(p)q(erformance)75 187 y(of)16 b(eac)o(h)h(implemen)o (tation.)26 b(F)l(urthermore,)16 b(though)g(implemen)o(tation)j(of)d(the)h (pro\014ling)h(capabilities)75 244 y(doubles)h(the)f(n)o(um)o(b)q(er)g(of)f (routines)h(supplied,)j(these)d(routines)g(can)g(easily)h(b)q(e)f(generated)g (from)f(the)75 300 y(routines)11 b(required)h(elsewhere)g(in)g(the)f(subset.) 18 b(Giv)o(en)11 b(these)g(considerations,)i(the)d(subset)h(will)i(con)o (tain)75 357 y(the)i(shado)o(w)g(routines)h(\\PMPI)s 14 2 v 13 w(")e(for)h(eac)o(h)g(routine)h(included)i(in)e(the)f(subset.)75 500 y fg(7.4)59 b(Subset)19 b(T)-5 b(esting)75 601 y fj(The)14 b(test)g(suite)g(is)h(exp)q(ected)g(to)f(also)f(include)k(a)d(subset)g(whic)o (h)h(will)g(v)o(erify)g(the)f(functionalit)o(y)h(of)f(this)75 658 y(subset.)1967 46 y fi(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF From owner-mpi-iac@CS.UTK.EDU Thu Sep 30 14:34:07 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA04801; Thu, 30 Sep 93 14:34:07 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930922/2.8s-UTK) id AA14872; Thu, 30 Sep 93 14:33:29 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Thu, 30 Sep 1993 14:33:27 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from chenas.inria.fr by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930922/2.8s-UTK) id AA14859; Thu, 30 Sep 93 14:33:23 -0400 Received: from irgate.ifp.fr by chenas.inria.fr (5.65c8d/92.02.29) via Fnet-EUnet id AA10532; Thu, 30 Sep 1993 19:33:19 +0100 (MET) Received: from irsun21.ifp.fr by irgate.ifp.fr, Thu, 30 Sep 93 19:33:18 +0100 Received: by irsun21.ifp.fr, Thu, 30 Sep 93 19:33:16 +0100 Date: Thu, 30 Sep 93 19:33:16 +0100 From: stoessel@irsun21.ifp.fr (Alain Stoessel) Message-Id: <9309301833.AA03762@irsun21.ifp.fr> To: mpi-iac@cs.utk.edu, lederman@super.org Subject: Re: updated subset chapter Hi mpi-iac members, I have just read the last version of the subset chapter. Two comments: - The introduction of topologies is a very good thing. As i mentionned in a previous mail, it will allow more efficiency without loosing portability. - Subset is now quite huge (small compared to the full standard). Is the wish of having a first implementation in the 6 months after the final draft still possible ? (Vendors comments ?) Steve, could you leave the TeX version on the FTP server ? It will be easier for the correction of some typos. +-----------------------+------------------------------+ | Alain STOESSEL | Institut Francais du Petrole | | | Computer Science and | | Tel: 33.1.47.52.71.33 | Applied Mathematics Dept. | | Fax: 33.1.47.52.70.22 | 1-4 Av de Bois-Preau | | Email: stoessel@ifp.fr| 92506 RUEIL-MALMAISON | | | FRANCE | +-----------------------+------------------------------+ From owner-mpi-iac@CS.UTK.EDU Thu Sep 30 16:02:25 1993 Received: from CS.UTK.EDU by netlib2.cs.utk.edu with SMTP (5.61+IDA+UTK-930125/2.8t-netlib) id AA05282; Thu, 30 Sep 93 16:02:25 -0400 Received: from localhost by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930922/2.8s-UTK) id AA21707; Thu, 30 Sep 93 16:01:41 -0400 X-Resent-To: mpi-iac@CS.UTK.EDU ; Thu, 30 Sep 1993 16:01:40 EDT Errors-To: owner-mpi-iac@CS.UTK.EDU Received: from super.super.org by CS.UTK.EDU with SMTP (5.61+IDA+UTK-930922/2.8s-UTK) id AA21699; Thu, 30 Sep 93 16:01:38 -0400 Received: from b125.super.org by super.super.org (4.1/SMI-4.1) id AA24096; Thu, 30 Sep 93 16:01:36 EDT Received: by b125.super.org (4.1/SMI-4.1) id AA02099; Thu, 30 Sep 93 16:01:35 EDT Date: Thu, 30 Sep 93 16:01:35 EDT From: lederman@super.org (Steve Huss-Lederman) Message-Id: <9309302001.AA02099@b125.super.org> To: stoessel@irsun21.ifp.fr Cc: mpi-iac@cs.utk.edu In-Reply-To: <9309301833.AA03762@irsun21.ifp.fr> (stoessel@irsun21.ifp.fr) Subject: Re: updated subset chapter Thanks to Alain for reading the subset so quickly. I cannot say how quickly the subset will appear. I also feel it is quite large but cannot come up with an alternative that people would accept. Several of the vendors seem commited to implementing both the subset and the full standard (minus a few ugly functions) quickly. Also, at least one group is doing an implementation that can be ported quickly to most machines and will run on quite a few now. Steve P.S. - I have put the LaTeX version in the ftp directory. If you run LaTeX on it, it will not work well without the rest of the document and all the wrapper stuff. However, feel free to use it to make comments. .