7373
7474function tpose (A:: SuiteSparseGraphBLAS.GBArray )
7575 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)
7981 println (stdout , result, " s" )
8082 GC. gc ()
8183 flush (stdout )
@@ -91,7 +93,14 @@ function tpose(A::SparseMatrixCSC)
9193 return result
9294end
9395
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
95104end
96105
97106function singlebench (pathornum)
@@ -113,98 +122,116 @@ function singlebench(pathornum)
113122 printstyled (stdout , " \n #################################################################################\n " ; bold= true , color= :green )
114123 printstyled (stdout , " Benchmarking $name :\n " ; bold= true , color= :green )
115124 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 )
117218 println (stdout , " ################################" )
118219 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 ))
138220 gbset (A, :format , SuiteSparseGraphBLAS. BYROW)
139221 diag (A)
140- gbresultsR = runthreaded (A, B; accumdenseoutput = true )
222+ gbresultsR = runthreadedt (A, transpose (A) )
141223 gbset (A, :format , SuiteSparseGraphBLAS. BYCOL)
142224 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))
198226 A2 = SparseMatrixCSC (A)
199- SAresults = mxm (A2, transpose (A2) )
227+ SAresults = tpose (A2)
200228 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 )
202230 println (stdout , " ################################" )
203231 println (stdout , " A by row (1, 2, 16 thread): $gbresultsR " )
204232 println (stdout , " A by col (1, 2, 16 thread): $gbresultsC " )
205233 println (stdout , " SparseArrays: $SAresults " )
206234 flush (stdout )
207-
208235 return nothing
209236end
210237
0 commit comments