[SCore-users-jp] MPICH-SCoreでのメモリ獲得について
Mitsugu Kawaguchi
m-kawaguchi @ pst.fujitsu.com
2004年 1月 8日 (木) 10:10:59 JST
This is a multi-part message in MIME format.
------=_NextPart_000_0015_01C3D5CF.B8EEF340
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
SCore開発関係者様
富士通プライムソフトテクノロジの川口です。
いつもお世話になっております。
SCore環境で添付したプログラムを実行したところ、
メモリ獲得が意図通りにできない問題が起きています。
何か原因が分かりますでしょうか?
【現象】
下記のようなプログラムを実施。
(1) malloc()で1GB程度のメモリを獲得。
(2) 続けてmalloc()で1MB程度のメモリを獲得。
→ 獲得に失敗。
但し、(1)で1GB未満(900MB程度を確認)では発生せず。
そのほかの条件として、
−MPICH-SCoreを利用すると発生。フリーのMPICHでは発生しない。
−1x1の場合は発生しない。並列ジョブでは発生。
実行環境はRedHatLinux8.0+SCore5.6.1 です。
実行プログラム(ソース)と実行結果を添付します。
以上、宜しくお願いします。
---
川口 ==> m-kawaguchi @ pst.fujitsu.com
------=_NextPart_000_0015_01C3D5CF.B8EEF340
Content-Type: application/octet-stream;
name="malloc.c"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="malloc.c"
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include "mpi.h"
int
main(int argc, char *argv[])
{
int rank, size, root;
int data, result;
result =3D -100;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
data =3D rank;
{
int n;
void *p;
/*n=3D900000000;*/
n=3D1000000000;
printf("%d %08lx\n",n,p=3Dmalloc(n));
n=3D1048576;
printf("%d %08lx\n",n,p=3Dmalloc(n));
n=3D1048576/2;
printf("%d %08lx\n",n,p=3Dmalloc(n));
n=3D1048576/2;
printf("%d %08lx\n",n,p=3Dmalloc(n));
n=3D1048576/2;
printf("%d %08lx\n",n,p=3Dmalloc(n));
n=3D1048576/2;
printf("%d %08lx\n",n,p=3Dmalloc(n));
}
if (rank =3D=3D 0) {
fprintf(stdout, "MPI communication start. size=3D%d\n", =
size);
fflush(stdout);
}
root =3D 0;
MPI_Reduce(&data, &result, 1, MPI_INT, MPI_SUM, root, =
MPI_COMM_WORLD);
if (rank =3D=3D 0) {
fprintf(stdout, "MPI communication end\n");
fprintf(stdout, "result is 0+1+...size-1.check =
result(%d)\n",
result);
fflush(stdout);
}
MPI_Finalize();
return 0;
}
------=_NextPart_000_0015_01C3D5CF.B8EEF340
Content-Type: text/plain;
name="log.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="log.txt"
(1)=90=E6=82=C91GB=8Al=93=BE=81i1x1=82=C5=8E=C0=8E{)=81@=96=E2=91=E8=82=C8=
=82=B5=81B
$ scrun -group=3Dall,nodes=3D1x1 ./c.out.1G
SCOUT: Spawning done.
SCore-D 5.7.0 connected.
<0:0> SCORE: One node ready.
1000000000 40013008
1048576 7b9c1008 <----- =
=8Al=93=BE=82=C5=82=AB=82=C4=82=A2=82=E9=81B
524288 7bac2008
524288 7bb43008
524288 7bbc4008
524288 7bc45008
MPI communication start. size=3D1
MPI communication end
result is 0+1+...size-1.check result(0)
SCOUT: Session done.
(2)=90=E6=82=C91GB=8Al=93=BE (1x2=82=C5=8E=C0=8E{) =
=96=E2=91=E8=82=A0=82=E8=81B
$ scrun -group=3Dall,nodes=3D1x2 ./c.out.1G
SCOUT: Spawning done.
SCore-D 5.7.0 connected.
<0:0> SCORE: 2 nodes (1x2) ready.
1000000000 40034008
1048576 00000000 <----- =
=8Al=93=BE=82=C5=82=AB=82=C4=82=A2=82=C8=82=A2=81B
524288 7ba00490
524288 7bb00018
524288 7bc00018
524288 7bd00018
MPI communication start. size=3D2
1000000000 40034008
1048576 00000000
524288 7ba00490
524288 7bb00018
524288 7bc00018
524288 7bd00018
MPI communication end
result is 0+1+...size-1.check result(1)
SCOUT: Session done.
(3)=90=E6=82=C91GB=8Al=93=BE (2x1=82=C5=8E=C0=8E{) =
=96=E2=91=E8=82=A0=82=E8=81B
$ scrun -group=3Dall,nodes=3D2x1 ./c.out.1G
SCOUT: Spawning done.
SCore-D 5.7.0 connected.
<0:0> SCORE: 2 nodes (2x1) ready.
1000000000 4005a008
1048576 00000000=81@=81@=81@=81@=81@<------- =
=8Al=93=BE=82=C5=82=AB=82=C4=82=A2=82=C8=82=A2=81B
524288 7bb00490
524288 7bc00018
524288 7bd00018
524288 7be00018
1000000000 4005a008
1048576 00000000
524288 7bb00490
524288 7bc00018
524288 7bd00018
524288 7be00018
MPI communication start. size=3D2
MPI communication end
result is 0+1+...size-1.check result(1)
SCOUT: Session done.
(4)=90=E6=82=C9900MB=8Al=93=BE (1x1=82=C5=8E=C0=8E{) =
=96=E2=91=E8=82=C8=82=B5=81B
[hagi @ B4 2003.12.29_malloc]$ scrun -group=3Dall,nodes=3D1x1 ./c.out.900
SCOUT: Spawning done.
SCore-D 5.7.0 connected.
<0:0> SCORE: One node ready.
900000000 40013008
1048576 75a63008=81@ <----------- =
=8Al=93=BE=82=C5=82=AB=82=C4=82=A2=82=E9=81B
524288 75b64008
524288 75be5008
524288 75c66008
524288 75ce7008
MPI communication start. size=3D1
MPI communication end
result is 0+1+...size-1.check result(0)
SCOUT: Session done.
(5)=90=E6=82=C9900MB=8Al=93=BE (1x2=82=C5=8E=C0=8E{) =
=96=E2=91=E8=82=C8=82=B5=81B
$ scrun -group=3Dall,nodes=3D1x2 ./c.out.900
SCOUT: Spawning done.
SCore-D 5.7.0 connected.
<0:0> SCORE: 2 nodes (1x2) ready.
900000000 08575268
1048576 3dfc3b70=81@ <----------- =
=8Al=93=BE=82=C5=82=AB=82=C4=82=A2=82=E9=81B
524288 3e0c3b78
524288 3e143b80
524288 3e1c3b88
524288 3e243b90
MPI communication start. size=3D2
MPI communication end
result is 0+1+...size-1.check result(1)
900000000 08575268
1048576 3dfc3b70
524288 3e0c3b78
524288 3e143b80
524288 3e1c3b88
524288 3e243b90
SCOUT: Session done.
(6)=90=E6=82=C9900MB=8Al=93=BE (2x1=82=C5=8E=C0=8E{) =
=96=E2=91=E8=82=C8=82=B5=81B
$ scrun -group=3Dall,nodes=3D2x1 ./c.out.900
SCOUT: Spawning done.
SCore-D 5.7.0 connected.
<0:0> SCORE: 2 nodes (2x1) ready.
900000000 085756c0
1048576 3dfc3fc8=81@ <----------- =
=8Al=93=BE=82=C5=82=AB=82=C4=82=A2=82=E9=81B
524288 3e0c3fd0
524288 3e143fd8
524288 3e1c3fe0
524288 3e243fe8
MPI communication start. size=3D2
MPI communication end
result is 0+1+...size-1.check result(1)
900000000 085756c0
1048576 3dfc3fc8
524288 3e0c3fd0
524288 3e143fd8
524288 3e1c3fe0
524288 3e243fe8
SCOUT: Session done.
------=_NextPart_000_0015_01C3D5CF.B8EEF340--
SCore-users-jp メーリングリストの案内