Skip to content

Commit e27b4b0

Browse files
author
Damian Rouson
committed
add co_broadcast tests, logs, & launch script
1 parent 1411741 commit e27b4b0

File tree

5 files changed

+594
-0
lines changed

5 files changed

+594
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/csh
2+
#
3+
if ( `caf -V | head -2 | tail -1 | awk '{print substr($0,1,4)}'` != "Open" ) then
4+
CAF_COMPILER
5+
endif
6+
#
7+
rm test1
8+
rm test1.log
9+
rm test2
10+
rm test2.log
11+
rm *.o
12+
rm *.mod
13+
#
14+
caf -ffree-form -ffree-line-length-0 -fbacktrace -g3 -O0 -o test1 test1.f90
15+
cafrun -np 2 test1 >& test1.log
16+
#
17+
caf -ffree-form -ffree-line-length-0 -fbacktrace -g3 -O0 -o test2 test2.f90
18+
cafrun -np 2 test2 >& test2.log
19+
#
20+
echo 'test1 allocation sizes on compute image'
21+
grep "Values:" test1.log
22+
echo 'test1 co_broadcasts on master image'
23+
grep "co_bro:" test1.log
24+
echo 'test1 Read and Write data'
25+
grep "L1:" test1.log
26+
#
27+
echo 'test2 allocation sizes on compute image'
28+
grep "Values:" test2.log
29+
echo 'test2 co_broadcasts on master image'
30+
grep "co_bro:" test2.log
31+
echo 'test2 Read and Write data'
32+
grep "L:" test2.log
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
Program test1
2+
!
3+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4+
! Test program to CO_BROADCAST two user defined types
5+
! 1) Allocatable, dimensioned user type
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!
8+
Implicit None
9+
!
10+
Integer ,Parameter :: C1 = 1, C2 = 2
11+
Integer :: i, j, k, N0, me, number_images
12+
!
13+
Type L2_Data
14+
Integer :: N2
15+
Integer ,Allocatable ,Dimension(:) :: A2
16+
End Type L2_Data
17+
!
18+
Type L1_Data
19+
Integer :: N1
20+
Integer ,Allocatable ,Dimension(:) :: B1
21+
Type ( L2_Data ) ,Allocatable ,Dimension(:) :: L2
22+
End Type L1_Data
23+
!
24+
Type ( L1_Data ) ,Allocatable ,Dimension(:) :: L1
25+
!
26+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27+
! Setting image data
28+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29+
!
30+
number_images = num_images()
31+
me = this_image()
32+
!
33+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
34+
! Setting L1 Data
35+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
36+
!
37+
If ( me .eq. C1 ) Then
38+
Write (*,*) 'L1: Data on image ', me
39+
N0 = 2
40+
Allocate ( L1(N0) )
41+
Write (*,*) 'L1: i,j,k,N = ', -1, -1, -1, N0, ' = ', 2
42+
Do i = 1, N0
43+
L1(i)%N1 = 3
44+
Write (*,*) 'L1: i,j,k,N = ', i, -1, -1, L1(i)%N1, ' = ', 3
45+
Allocate ( L1(i)%B1(L1(i)%N1) )
46+
Do j = 1, L1(i)%N1
47+
L1(i)%B1(j) = j
48+
Write (*,*) 'L1: i,j,k,B = ', i, j, -1, L1(i)%B1(j), ' = ', j
49+
End Do
50+
Allocate ( L1(i)%L2(L1(i)%N1) )
51+
Do j = 1, L1(i)%N1
52+
L1(i)%L2(j)%N2 = 4
53+
Write (*,*) 'L1: i,j,k,N = ', i, j, -1, L1(i)%L2(j)%N2, ' = ', 4
54+
Allocate ( L1(i)%L2(j)%A2(L1(i)%L2(j)%N2) )
55+
Do k = 1, L1(i)%L2(j)%N2
56+
L1(i)%L2(j)%A2(k) = 10*k
57+
Write (*,*) 'L1: i,j,k,A = ', i, j, k, L1(i)%L2(j)%A2(k), ' = ', 10*k
58+
End Do
59+
End Do
60+
End Do
61+
Write (*,*) 'Calling CO_BROADCAST for L1 Data'
62+
End If
63+
!
64+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
65+
! CO_BROADCASTing L1 Data
66+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
67+
!
68+
Sync All
69+
!
70+
if(me.eq.C1)print *, 'co_bro: N0 = ', N0
71+
Call CO_BROADCAST ( N0, C1 )
72+
If ( me .ne. C1 ) Then
73+
print *, 'Values: N0 = ', N0
74+
Allocate ( L1(N0) )
75+
End If
76+
Do i = 1, N0
77+
if(me.eq.C1)print *, 'co_bro: N0, i, L1(i)%N1 = ', N0, i, L1(i)%N1
78+
Call CO_BROADCAST ( L1(i)%N1, C1 )
79+
If ( me .ne. C1 ) Then
80+
print *, 'Values: N0, i, L1(i)%N1 = ', N0, i, L1(i)%N1
81+
Allocate ( L1(i)%B1(L1(i)%N1) )
82+
Allocate ( L1(i)%L2(L1(i)%N1) )
83+
End If
84+
Do j = 1, L1(i)%N1
85+
if(me.eq.C1)print *, 'co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = ', N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2
86+
Call CO_BROADCAST ( L1(i)%L2(j)%N2, C1 )
87+
If ( me .ne. C1 ) Then
88+
print *, 'Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = ', N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2
89+
Allocate ( L1(i)%L2(j)%A2(L1(i)%L2(j)%N2) )
90+
End If
91+
End Do
92+
End Do
93+
if(me.eq.C1)print *, 'co_bro: L1'
94+
Call CO_BROADCAST ( L1, C1 )
95+
!
96+
Sync All
97+
!
98+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
99+
! Writting L1 Data
100+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
101+
!
102+
If ( me .ne. C1 ) Then
103+
Write (*,*) 'L1: Data on image ', me
104+
Write (*,*) 'L1: i,j,k,N = ', -1, -1, -1, N0, ' = ', 2
105+
Do i = 1, N0
106+
Write (*,*) 'L1: i,j,k,N = ', i, -1, -1, L1(i)%N1, ' = ', 3
107+
Do j = 1, L1(i)%N1
108+
Write (*,*) 'L1: i,j,k,B = ', i, j, -1, L1(i)%B1(j), ' = ', j
109+
End Do
110+
Do j = 1, L1(i)%N1
111+
Write (*,*) 'L1: i,j,k,N = ', i, j, -1, L1(i)%L2(j)%N2, ' = ', 4
112+
Do k = 1, L1(i)%L2(j)%N2
113+
Write (*,*) 'L1: i,j,k,A = ', i, j, k, L1(i)%L2(j)%A2(k), ' = ', 10*k
114+
End Do
115+
End Do
116+
End Do
117+
End If
118+
!
119+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
120+
! End of program
121+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
122+
!
123+
End Program test1
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
L1: Data on image 1
2+
L1: i,j,k,N = -1 -1 -1 2 = 2
3+
L1: i,j,k,N = 1 -1 -1 3 = 3
4+
L1: i,j,k,B = 1 1 -1 1 = 1
5+
L1: i,j,k,B = 1 2 -1 2 = 2
6+
L1: i,j,k,B = 1 3 -1 3 = 3
7+
L1: i,j,k,N = 1 1 -1 4 = 4
8+
L1: i,j,k,A = 1 1 1 10 = 10
9+
L1: i,j,k,A = 1 1 2 20 = 20
10+
L1: i,j,k,A = 1 1 3 30 = 30
11+
L1: i,j,k,A = 1 1 4 40 = 40
12+
L1: i,j,k,N = 1 2 -1 4 = 4
13+
L1: i,j,k,A = 1 2 1 10 = 10
14+
L1: i,j,k,A = 1 2 2 20 = 20
15+
L1: i,j,k,A = 1 2 3 30 = 30
16+
L1: i,j,k,A = 1 2 4 40 = 40
17+
L1: i,j,k,N = 1 3 -1 4 = 4
18+
L1: i,j,k,A = 1 3 1 10 = 10
19+
L1: i,j,k,A = 1 3 2 20 = 20
20+
L1: i,j,k,A = 1 3 3 30 = 30
21+
L1: i,j,k,A = 1 3 4 40 = 40
22+
L1: i,j,k,N = 2 -1 -1 3 = 3
23+
L1: i,j,k,B = 2 1 -1 1 = 1
24+
L1: i,j,k,B = 2 2 -1 2 = 2
25+
L1: i,j,k,B = 2 3 -1 3 = 3
26+
L1: i,j,k,N = 2 1 -1 4 = 4
27+
L1: i,j,k,A = 2 1 1 10 = 10
28+
L1: i,j,k,A = 2 1 2 20 = 20
29+
L1: i,j,k,A = 2 1 3 30 = 30
30+
L1: i,j,k,A = 2 1 4 40 = 40
31+
L1: i,j,k,N = 2 2 -1 4 = 4
32+
L1: i,j,k,A = 2 2 1 10 = 10
33+
L1: i,j,k,A = 2 2 2 20 = 20
34+
L1: i,j,k,A = 2 2 3 30 = 30
35+
L1: i,j,k,A = 2 2 4 40 = 40
36+
L1: i,j,k,N = 2 3 -1 4 = 4
37+
L1: i,j,k,A = 2 3 1 10 = 10
38+
L1: i,j,k,A = 2 3 2 20 = 20
39+
L1: i,j,k,A = 2 3 3 30 = 30
40+
L1: i,j,k,A = 2 3 4 40 = 40
41+
Calling CO_BROADCAST for L1 Data
42+
co_bro: N0 = 2
43+
DTYPE Size: 4
44+
DTYPE Size: 4
45+
co_bro: N0, i, L1(i)%N1 = 2 1 3
46+
DTYPE Size: 4
47+
co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 1 3 1 4
48+
DTYPE Size: 4
49+
co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 1 3 2 4
50+
DTYPE Size: 4
51+
co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 1 3 3 4
52+
DTYPE Size: 4
53+
co_bro: N0, i, L1(i)%N1 = 2 2 3
54+
DTYPE Size: 4
55+
co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 2 3 1 4
56+
DTYPE Size: 4
57+
co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 2 3 2 4
58+
DTYPE Size: 4
59+
co_bro: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 2 3 3 4
60+
DTYPE Size: 4
61+
co_bro: L1
62+
DTYPE Size: 152
63+
Values: N0 = 2
64+
DTYPE Size: 4
65+
Values: N0, i, L1(i)%N1 = 2 1 3
66+
DTYPE Size: 4
67+
Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 1 3 1 4
68+
DTYPE Size: 4
69+
Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 1 3 2 4
70+
DTYPE Size: 4
71+
Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 1 3 3 4
72+
DTYPE Size: 4
73+
Values: N0, i, L1(i)%N1 = 2 2 3
74+
DTYPE Size: 4
75+
Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 2 3 1 4
76+
DTYPE Size: 4
77+
Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 2 3 2 4
78+
DTYPE Size: 4
79+
Values: N0, i, L1(i)%N1, j, L1(i)%L2(j)%N2 = 2 2 3 3 4
80+
DTYPE Size: 152
81+
L1: Data on image 2
82+
L1: i,j,k,N = -1 -1 -1 2 = 2
83+
L1: i,j,k,N = 1 -1 -1 3 = 3
84+
L1: i,j,k,B = 1 1 -1 40170336 = 1
85+
L1: i,j,k,B = 1 2 -1 0 = 2
86+
L1: i,j,k,B = 1 3 -1 0 = 3
87+
L1: i,j,k,N = 1 1 -1 4 = 4
88+
L1: i,j,k,A = 1 1 1 40170368 = 10
89+
L1: i,j,k,A = 1 1 2 0 = 20
90+
L1: i,j,k,A = 1 1 3 774911026 = 30
91+
L1: i,j,k,A = 1 1 4 825372464 = 40
92+
L1: i,j,k,N = 1 2 -1 4 = 4
93+
L1: i,j,k,A = 1 2 1 40059600 = 10
94+
L1: i,j,k,A = 1 2 2 0 = 20
95+
L1: i,j,k,A = 1 2 3 -132327496 = 30
96+
L1: i,j,k,A = 1 2 4 11106 = 40
97+
L1: i,j,k,N = 1 3 -1 4 = 4
98+
L1: i,j,k,A = 1 3 1 0 = 10
99+
L1: i,j,k,A = 1 3 2 0 = 20
100+
L1: i,j,k,A = 1 3 3 0 = 30
101+
L1: i,j,k,A = 1 3 4 0 = 40
102+
L1: i,j,k,N = 2 -1 -1 3 = 3
103+
L1: i,j,k,B = 2 1 -1 0 = 1
104+
L1: i,j,k,B = 2 2 -1 0 = 2
105+
L1: i,j,k,B = 2 3 -1 0 = 3
106+
L1: i,j,k,N = 2 1 -1 4 = 4
107+
L1: i,j,k,A = 2 1 1 0 = 10
108+
L1: i,j,k,A = 2 1 2 0 = 20
109+
L1: i,j,k,A = 2 1 3 0 = 30
110+
L1: i,j,k,A = 2 1 4 0 = 40
111+
L1: i,j,k,N = 2 2 -1 4 = 4
112+
L1: i,j,k,A = 2 2 1 0 = 10
113+
L1: i,j,k,A = 2 2 2 0 = 20
114+
L1: i,j,k,A = 2 2 3 0 = 30
115+
L1: i,j,k,A = 2 2 4 0 = 40
116+
L1: i,j,k,N = 2 3 -1 4 = 4
117+
L1: i,j,k,A = 2 3 1 0 = 10
118+
L1: i,j,k,A = 2 3 2 0 = 20
119+
L1: i,j,k,A = 2 3 3 0 = 30
120+
L1: i,j,k,A = 2 3 4 0 = 40

0 commit comments

Comments
 (0)