Hallo ihr Lieben,
habe ein Problem, ich berechne eine Matrix mittels Gausseidel Verfahren verteilt auf meheren Rechnern, die über sockets miteinander kommunizieren. Das funktioniert auch, jetzt soll aber am Ende der Rechnung die Resultierende Matrix wieder zusammengesetzt werden. Vorher habe ich nur Zeilen hin und her geschickt, dies habe ich so gelöst:
wobei die empfange Nachricht rom Typ Object ist, die ich in das Double[] MatrixLine Object hineincaste und dann die Einträge über die Schleife an die entsprechende Stelle in der Matrix schreibe.
Nun will ich aber das Double Matrix[][] Objekt verschicken, packe dies dazu in ein Object buffer und sende es an sein ziel, dort will ich es eigentlich wieder in eine Matrix einfügen, die dann im Endeffekt aus den resultierenden Matrizen der Teilnehmer besehen soll.
Allerdings ist das nicht so möglich:
bei den send- und receive Funktionen handelt es sich um Objectstreams die ein buffer Object vom Typ Object erwarten bzw zurückliefern.
Die Frage ist nun wie bekomme ich eine Matrix vom Object Typ Double[][] die wiederum in einem buffer vom Typ Object seckt wieder zurück in ein Double[][].
mh hoffe ich konnte das Problem anschaulich beschreiben und mir kann jemand helfen.
Vielen Dank im Voraus,
Liebe Grüße Christine
habe ein Problem, ich berechne eine Matrix mittels Gausseidel Verfahren verteilt auf meheren Rechnern, die über sockets miteinander kommunizieren. Das funktioniert auch, jetzt soll aber am Ende der Rechnung die Resultierende Matrix wieder zusammengesetzt werden. Vorher habe ich nur Zeilen hin und her geschickt, dies habe ich so gelöst:
Code:
MatrixLine = (Double[]) Comm.recv();
for (i=0;i<N;i++){
Matrix[L-1][i]=MatrixLine[i];}
wobei die empfange Nachricht rom Typ Object ist, die ich in das Double[] MatrixLine Object hineincaste und dann die Einträge über die Schleife an die entsprechende Stelle in der Matrix schreibe.
Nun will ich aber das Double Matrix[][] Objekt verschicken, packe dies dazu in ein Object buffer und sende es an sein ziel, dort will ich es eigentlich wieder in eine Matrix einfügen, die dann im Endeffekt aus den resultierenden Matrizen der Teilnehmer besehen soll.
Allerdings ist das nicht so möglich:
Code:
buffer=Comm.recv();
for (int i=0;i<L;i++){
for (int j=0; j<N; j++){
resultMatrix[(L*src)+i][(N*src)+j]= (Double[][]) buffer[i][j]; //oder sowas in der Art
}}
Die Frage ist nun wie bekomme ich eine Matrix vom Object Typ Double[][] die wiederum in einem buffer vom Typ Object seckt wieder zurück in ein Double[][].
mh hoffe ich konnte das Problem anschaulich beschreiben und mir kann jemand helfen.
Vielen Dank im Voraus,
Liebe Grüße Christine