Skip to main content

Table 5 Strong scaling: d2o’s relative performance to a single process when increasing the number of processes while fixing the global array size to \((4096, 4096)=128~\mathrm {MiB}\)

From: d2o: a distributed data object for parallel high-performance computing in Python

Processes (local size)

1 (128 MiB) (%)

2 (64 MiB) (%)

3 (42.7 MiB) (%)

4 (32MiB) (%)

8 (16 MiB) (%)

16 (8 MiB) (%)

32 (4 MiB) (%)

64 (2 MiB) (%)

128 (1 MiB) (%)

256 (512 KiB) (%)

initialization

100.0

40.3

23.7

17.1o

6.80

2.55

0.89

0.29

0.10,

0.03

copy .empty

100.0

47.8

33.5

26.3

23.2

12.1

6.16

3.09

1.55

0.79

max

100.0

99.0

96.7

94.0

80.1

64.3

29.6

9.10

2. 41

0.60

sum

100.0

100.4

95.4

91.7

74.1

60.9

24-4

7.05

1.82

0.45

sum(axis\(\,=\,\)0)

100.0

98.0

94.2

89.9

62.2

45.3

19.8

6.34

1.78:

0.45

sum(axis\(\,=\,\)1)

100.0

100.5

92.3

92.6

79.0

77.7

47.1

20.6

4. 27

1.25

obj[::-2]

100.0

65.4

62.4

58.5

40.7

33.1

26.6

18.3

8. 78

3.25

copy

100.0

103.6

105.9

98.0

145.1

156.4

155.3

152.3

157.5

306.7

obj \(+\) 0

100.0

105.9

109.1

100.4

59.0

97.3

75.7

79.2

79.4

149.8

obj \(+\) obj

100.0

106.2

109.2

100.3

59.0

97.6

74.9

79.0

80.1

150.2

obj \(+=\) obj

100.0

103.1

101.3

98.0

97.8

124.0

122.8

117.9

108.1

94.4

sqrt

100.0

101.8

99.4

98.7

95.7

88.8

76.0

56.0

37.1

16.4

bincount

100.0

102.3

99.5

98.0

111.1

107.3

84.2

40.5

13.2

3.57

  1. “100 %” corresponds to the case were the speedup is equal to the number of processes. Example: the 94.4 % for obj+=obj on 256 processes correspond to a speedup-factor of 241.7. In order to guide the eye, values <30 % are printed italic, values ≥90 % are printed bold-italics. Please see "Strong scaling: varying number of processes with a fixed size of data" section for discussion