73
73
74
74
function tpose (A:: SuiteSparseGraphBLAS.GBArray )
75
75
Ao = storageorder (A) == ColMajor () ? " C" : " R"
76
- Bo = storageorder (B) == ColMajor () ? " C" : " R"
77
- printstyled (stdout , " \n C::GBArray = transpose(A::GBArray($Ao , $(size (A)) ))\n " )
78
- result = @gbbench copy (transpose (A))
76
+ C = similar (A)
77
+ gbset (C, :format , storageorder (A) === ColMajor () ? SuiteSparseGraphBLAS. BYCOL : SuiteSparseGraphBLAS. BYROW)
78
+ Co = storageorder (A) == ColMajor () ? " C" : " R"
79
+ printstyled (stdout , " \n C::GBArray($(Co) ) = transpose(A::GBArray($Ao , $(size (A)) ))\n " )
80
+ result = @gbbench SuiteSparseGraphBLAS. gbtranspose! (C, A)
79
81
println (stdout , result, " s" )
80
82
GC. gc ()
81
83
flush (stdout )
@@ -91,7 +93,14 @@ function tpose(A::SparseMatrixCSC)
91
93
return result
92
94
end
93
95
94
- function spdbench (A)
96
+ function runthreadedt (A, B; accumdenseoutput= false )
97
+ v = []
98
+ for t ∈ threadlist
99
+ printstyled (stdout , " \n Running GraphBLAS with $t threads\n " ; bold= true )
100
+ gbset (:nthreads , t)
101
+ push! (v, tpose (A))
102
+ end
103
+ return v
95
104
end
96
105
97
106
function singlebench (pathornum)
@@ -113,98 +122,116 @@ function singlebench(pathornum)
113
122
printstyled (stdout , " \n #################################################################################\n " ; bold= true , color= :green )
114
123
printstyled (stdout , " Benchmarking $name :\n " ; bold= true , color= :green )
115
124
printstyled (stdout , " #################################################################################\n " ; bold= true , color= :green )
116
- printstyled (stdout , " \n Sparse * Vec\n " ; bold= true )
125
+
126
+ # printstyled(stdout, "\nSparse * Vec\n"; bold=true)
127
+ # println(stdout, "################################")
128
+ # flush(stdout)
129
+ # B = rand(eltype(A), size(A, 2))
130
+ # B = GBVector(B)
131
+ #
132
+ # gbresultsR = runthreaded(A, B; accumdenseoutput=true)
133
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
134
+ # diag(A)
135
+ # gbresultsC = runthreaded(A, B; accumdenseoutput=true)
136
+ # SAresults = mxm(SparseMatrixCSC(A), Vector(B))
137
+ # printstyled(stdout, "\nRESULTS, Sparse * DenseVec: \n"; bold=true, color=:green)
138
+ # println(stdout, "################################")
139
+ # println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
140
+ # println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
141
+ # println(stdout, "SparseArrays: $SAresults")
142
+ # flush(stdout)
143
+ #
144
+ # printstyled(stdout, "\nSparse * (n x 2)\n"; bold=true)
145
+ # println(stdout, "################################")
146
+ # flush(stdout)
147
+ # B = GBMatrix(rand(eltype(A), size(A, 2), 2))
148
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
149
+ # diag(A)
150
+ # gbresultsR = runthreaded(A, B; accumdenseoutput=true)
151
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
152
+ # diag(A)
153
+ # gbresultsC = runthreaded(A, B; accumdenseoutput=true)
154
+ # SAresults = mxm(SparseMatrixCSC(A), Matrix(B))
155
+ # printstyled(stdout, "\nRESULTS, Sparse * n x 2 Dense: \n"; bold=true, color=:green)
156
+ # println(stdout, "################################")
157
+ # println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
158
+ # println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
159
+ # println(stdout, "SparseArrays: $SAresults")
160
+ # flush(stdout)
161
+ #
162
+ # printstyled(stdout, "\nSparse * (n x 32)\n"; bold=true)
163
+ # println(stdout, "################################")
164
+ # flush(stdout)
165
+ # B = GBMatrix(rand(eltype(A), size(A, 2), 32))
166
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
167
+ # diag(A)
168
+ # gbresultsR = runthreaded(A, B; accumdenseoutput=true)
169
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
170
+ # diag(A)
171
+ # gbresultsC = runthreaded(A, B; accumdenseoutput=true)
172
+ # SAresults = mxm(SparseMatrixCSC(A), Matrix(B))
173
+ # printstyled(stdout, "\nRESULTS, Sparse * n x 32 Dense: \n"; bold=true, color=:green)
174
+ # println(stdout, "################################")
175
+ # println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
176
+ # println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
177
+ # println(stdout, "SparseArrays: $SAresults")
178
+ # flush(stdout)
179
+ #
180
+ # printstyled(stdout, "\nSparse * Sparse'"; bold=true)
181
+ # println(stdout, "################################")
182
+ # flush(stdout)
183
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
184
+ # diag(A)
185
+ # gbresultsR = runthreaded(A, transpose(A))
186
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
187
+ # diag(A)
188
+ # gbresultsC = runthreaded(A, transpose(A))
189
+ # A2 = SparseMatrixCSC(A)
190
+ # SAresults = mxm(A2, transpose(A2))
191
+ # println(stdout, )
192
+ # printstyled(stdout, "\nRESULTS, Sparse * Sparse: \n"; bold=true, color=:green)
193
+ # println(stdout, "################################")
194
+ # println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
195
+ # println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
196
+ # println(stdout, "SparseArrays: $SAresults")
197
+ # flush(stdout)
198
+ #
199
+ # printstyled(stdout, "\nSparse * Sparse'"; bold=true)
200
+ # println(stdout, "################################")
201
+ # flush(stdout)
202
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
203
+ # diag(A)
204
+ # gbresultsR = runthreaded(A, transpose(A))
205
+ # gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
206
+ # diag(A)
207
+ # gbresultsC = runthreaded(A, transpose(A))
208
+ # A2 = SparseMatrixCSC(A)
209
+ # SAresults = mxm(A2, transpose(A2))
210
+ # println(stdout, )
211
+ # printstyled(stdout, "\nRESULTS, Sparse * Sparse: \n"; bold=true, color=:green)
212
+ # println(stdout, "################################")
213
+ # println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
214
+ # println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
215
+ # println(stdout, "SparseArrays: $SAresults")
216
+ # flush(stdout)
217
+ printstyled (stdout , " \n C = copy(transpose(A))" ; bold= true )
117
218
println (stdout , " ################################" )
118
219
flush (stdout )
119
- B = rand (eltype (A), size (A, 2 ))
120
- B = GBVector (B)
121
-
122
- gbresultsR = runthreaded (A, B; accumdenseoutput= true )
123
- gbset (A, :format , SuiteSparseGraphBLAS. BYCOL)
124
- diag (A)
125
- gbresultsC = runthreaded (A, B; accumdenseoutput= true )
126
- SAresults = mxm (SparseMatrixCSC (A), Vector (B))
127
- printstyled (stdout , " \n RESULTS, Sparse * DenseVec: \n " ; bold= true , color= :green )
128
- println (stdout , " ################################" )
129
- println (stdout , " A by row (1, 2, 16 thread): $gbresultsR " )
130
- println (stdout , " A by col (1, 2, 16 thread): $gbresultsC " )
131
- println (stdout , " SparseArrays: $SAresults " )
132
- flush (stdout )
133
-
134
- printstyled (stdout , " \n Sparse * (n x 2)\n " ; bold= true )
135
- println (stdout , " ################################" )
136
- flush (stdout )
137
- B = GBMatrix (rand (eltype (A), size (A, 2 ), 2 ))
138
220
gbset (A, :format , SuiteSparseGraphBLAS. BYROW)
139
221
diag (A)
140
- gbresultsR = runthreaded (A, B; accumdenseoutput = true )
222
+ gbresultsR = runthreadedt (A, transpose (A) )
141
223
gbset (A, :format , SuiteSparseGraphBLAS. BYCOL)
142
224
diag (A)
143
- gbresultsC = runthreaded (A, B; accumdenseoutput= true )
144
- SAresults = mxm (SparseMatrixCSC (A), Matrix (B))
145
- printstyled (stdout , " \n RESULTS, Sparse * n x 2 Dense: \n " ; bold= true , color= :green )
146
- println (stdout , " ################################" )
147
- println (stdout , " A by row (1, 2, 16 thread): $gbresultsR " )
148
- println (stdout , " A by col (1, 2, 16 thread): $gbresultsC " )
149
- println (stdout , " SparseArrays: $SAresults " )
150
- flush (stdout )
151
-
152
- printstyled (stdout , " \n Sparse * (n x 32)\n " ; bold= true )
153
- println (stdout , " ################################" )
154
- flush (stdout )
155
- B = GBMatrix (rand (eltype (A), size (A, 2 ), 32 ))
156
- gbset (A, :format , SuiteSparseGraphBLAS. BYROW)
157
- diag (A)
158
- gbresultsR = runthreaded (A, B; accumdenseoutput= true )
159
- gbset (A, :format , SuiteSparseGraphBLAS. BYCOL)
160
- diag (A)
161
- gbresultsC = runthreaded (A, B; accumdenseoutput= true )
162
- SAresults = mxm (SparseMatrixCSC (A), Matrix (B))
163
- printstyled (stdout , " \n RESULTS, Sparse * n x 32 Dense: \n " ; bold= true , color= :green )
164
- println (stdout , " ################################" )
165
- println (stdout , " A by row (1, 2, 16 thread): $gbresultsR " )
166
- println (stdout , " A by col (1, 2, 16 thread): $gbresultsC " )
167
- println (stdout , " SparseArrays: $SAresults " )
168
- flush (stdout )
169
-
170
- printstyled (stdout , " \n Sparse * Sparse'" ; bold= true )
171
- println (stdout , " ################################" )
172
- flush (stdout )
173
- gbset (A, :format , SuiteSparseGraphBLAS. BYROW)
174
- diag (A)
175
- gbresultsR = runthreaded (A, transpose (A))
176
- gbset (A, :format , SuiteSparseGraphBLAS. BYCOL)
177
- diag (A)
178
- gbresultsC = runthreaded (A, transpose (A))
179
- A2 = SparseMatrixCSC (A)
180
- SAresults = mxm (A2, transpose (A2))
181
- println (stdout , )
182
- printstyled (stdout , " \n RESULTS, Sparse * Sparse: \n " ; bold= true , color= :green )
183
- println (stdout , " ################################" )
184
- println (stdout , " A by row (1, 2, 16 thread): $gbresultsR " )
185
- println (stdout , " A by col (1, 2, 16 thread): $gbresultsC " )
186
- println (stdout , " SparseArrays: $SAresults " )
187
- flush (stdout )
188
-
189
- printstyled (stdout , " \n Sparse * Sparse'" ; bold= true )
190
- println (stdout , " ################################" )
191
- flush (stdout )
192
- gbset (A, :format , SuiteSparseGraphBLAS. BYROW)
193
- diag (A)
194
- gbresultsR = runthreaded (A, transpose (A))
195
- gbset (A, :format , SuiteSparseGraphBLAS. BYCOL)
196
- diag (A)
197
- gbresultsC = runthreaded (A, transpose (A))
225
+ gbresultsC = runthreadedt (A, transpose (A))
198
226
A2 = SparseMatrixCSC (A)
199
- SAresults = mxm (A2, transpose (A2) )
227
+ SAresults = tpose (A2)
200
228
println (stdout , )
201
- printstyled (stdout , " \n RESULTS, Sparse * Sparse : \n " ; bold= true , color= :green )
229
+ printstyled (stdout , " \n RESULTS, C = copy(transpose(A)) : \n " ; bold= true , color= :green )
202
230
println (stdout , " ################################" )
203
231
println (stdout , " A by row (1, 2, 16 thread): $gbresultsR " )
204
232
println (stdout , " A by col (1, 2, 16 thread): $gbresultsC " )
205
233
println (stdout , " SparseArrays: $SAresults " )
206
234
flush (stdout )
207
-
208
235
return nothing
209
236
end
210
237
0 commit comments