-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathPROBLEMS.TXT
227 lines (154 loc) · 6.24 KB
/
PROBLEMS.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
> > I implemented it, but... Comm.createKeyVal() only returns the keyval.
> > In JNI side I use the fn pointers in order to copy an free memory.
> >
> > Is it necessary implement the fn callbacks in Java?
>
> I don't know. At the moment they are used in my test programs.
>
> MPI_Keyval_create(MPI.NULL_COPY_FN,MPI.NULL_DELETE_FN,&key,0);
>
> > Comm.freeKeyval(int keyval) can't modify the keyval with
> > MPI_KEYVAL_INVALID. If it is necessary, we must implement a keyval as
> > an object instead of int.
>
> Perhaps we should once more use an array with just one element for
> "keyval".
>
> MPI_Keyval_free(&key);
> if(key != MPI.KEYVAL_INVALID)
>
> Alternatively you can throw an MPIException with MPI.KEYVAL_INVALID.
We could implement keyval as an object, but we think keyval are not
very important. So it is not worth the effort.
======================================================================
>> Do we want to add a new type "String" and to do the necessary
>> transformation to "char *" in the interface or shall I copy the
>> string into a byte array, which we then use as a char array in
>> C (chars in Java are 16 bits wide)? I would prefer a new datatype
>> "String", because it seems to be more natural for Java programmers.
Oscar:
------
> You can use the method String.getBytes() and the datatype BYTE or
> CHAR. The method getBytes encodes the string into a byte array.
Jeff:
-----
Is there any value for Java programmers to provide a datatype for the
java string?
I'm thinking "yes", but it's a little more complicated, unfortunately
-- because it's a variable length item. I.e., what should the "count"
be -- the number of bytes in the string? That would kinda defeat the
point.
Let's keep this point for future discussion (i.e., after basic
functionality is done). Perhaps this is one of those items that would
be good for an upper-level/higher-abstraction library above MPI...
======================================================================
I need the following methods, constants, and/or types to finish my
port of the following test programs.
> collective/todo/Alltoallw.java
> ------------------------------
>
> MPI_Alltoallw()
> "extent = MPI.INT.getExtent();" delivers wrong result
In MPI_Alltoallw the displacement of blocks is specified in bytes.
Java doesn't deal with bytes. So, this method cannot be ported.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
collective/todo/BcastStruct.java
collective/todo/IbcastStruct.java
---------------------------------
Don't know how to build the parameters for createStruct().
MPI_Address()
MPI.BOTTOM
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
collective/todo/IstructGatherv.java
collective/todo/StructGatherv.java
-----------------------------------
Don't know how to build the parameters for createStruct().
MPI.UB
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
collective_intercomm/todo/AlltoallwInter.java
---------------------------------------------
MPI_Alltoallw()
In MPI_Alltoallw the displacement of blocks is specified in bytes.
Java doesn't deal with bytes. So, this method cannot be ported.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
communicator/todo/SelfAtexit.java
---------------------------------
MPI_Keyval_create()
MPI.NULL_COPY_FN
I still have a problem with a method as parameter of a method.
You told me, that I should do it in a similar way as it was
done for Op. I looked at Op.java, UserFunction.java,
User_function.java, Maxloc.java, and Minloc.java, but couldn't
get a solution. Therefore I would be grateful, if somebody
else can complete the porting process for SelfAtexit.java.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
datatype/todo/Bottom.java
datatype/todo/Transpa.java
--------------------------
MPI.BOTTOM
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
datatype/todo/Zero5.java
datatype/todo/Zero6.java
----------------------------
Don't know how to build the parameters for createStruct().
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
datatype/todo/Lbub.java
datatype/todo/Lbub2.java
datatype/todo/Strangest1.java
datatype/todo/Zero3.java
-----------------------------
Don't know how to build the parameters for createStruct().
MPI.LB
MPI.UB
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
dynamic/todo/CommJoin.java
--------------------------
MPI_Comm_join()
Oscar: You can't obtain the socket descriptor of a Java socket.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
environment/todo/Err.java
-------------------------
MPI_Comm_create_errhandler()
MPI_Errhandler_free()
MPI.ERRHANDLER_NULL
I don't know if the above methods are necessary or if you can
use "setErrhandler()" without them. I'm not sure, if I adapted
the types for the parameters of the error handler correctly.
C: void myhandler1(MPI_Comm *comm,int *code,...)
Java: void myhandler1(Comm comm[],int code[],...)
Perhaps "Comm comm" is enough, so that we don't need
"Comm comm[]".
Same remarks as for SelfAtexit.java, so that I would be grateful,
if somebody with more skills can complete the porting process.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
pt2pt/todo/Allocmem.java
------------------------
MPI_Alloc_mem()
MPI_Free_mem()
Oscar:
MPI_Alloc_mem and MPI_Free_mem require Unsafe class, and we will
not use it.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
pt2pt/todo/Buffer.java
----------------------
MPI_Comm_create_errhandler()
MPI_Errhandler_free()
MPI_Error_string( *code, buf, &result_len );
Same remarks as for Err.java. "MPIException.getMessage()" cannot
be used, because the error handler will be called with an error
code and not with an exception handle.
Same remarks as for SelfAtexit.java, so that I would be grateful,
if somebody with more skills can complete the porting process.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
random/todo/OmpiAffinityStr.java
--------------------------------
OMPI_AFFINITY_STRING_MAX
OMPI_AFFINITY_STRING_MAX
OMPI_AFFINITY_STRING_MAX
OMPI_AFFINITY_RSRC_STRING_FMT
OMPI_AFFINITY_LAYOUT_FMT
======================================================================
One or more parameters are not available for the following functions
in Java.
MPI_Test_cancelled()
======================================================================