1- using PSOGPU, StaticArrays, SciMLBase, Test, LinearAlgebra, Random
1+ using PSOGPU, StaticArrays, SciMLBase, Test, LinearAlgebra, Random, KernelAbstractions
22
33@testset " Rosenbrock test dimension = $(N) " for N in 2 : 3
44
@@ -36,6 +36,18 @@ using PSOGPU, StaticArrays, SciMLBase, Test, LinearAlgebra, Random
3636
3737 @test sol. objective < 1e-4
3838
39+ sol = solve (prob,
40+ ParallelPSOKernel (n_particles; backend = CPU ()),
41+ maxiters = 500 )
42+
43+ @test sol. objective < 1e-4
44+
45+ sol = solve (prob,
46+ ParallelSyncPSOKernel (n_particles; backend = CPU ()),
47+ maxiters = 500 )
48+
49+ @test sol. objective < 1e-4
50+
3951 lb = @SVector fill (Float32 (- Inf ), N)
4052 ub = @SVector fill (Float32 (Inf ), N)
4153
@@ -54,6 +66,18 @@ using PSOGPU, StaticArrays, SciMLBase, Test, LinearAlgebra, Random
5466
5567 @test sol. objective < 1e-4
5668
69+ sol = solve (prob,
70+ ParallelPSOKernel (n_particles; backend = CPU ()),
71+ maxiters = 500 )
72+
73+ @test sol. objective < 1e-4
74+
75+ sol = solve (prob,
76+ ParallelSyncPSOKernel (n_particles; backend = CPU ()),
77+ maxiters = 500 )
78+
79+ @test sol. objective < 1e-4
80+
5781 array_prob = remake (array_prob; lb = nothing , ub = nothing )
5882 prob = remake (prob; lb = nothing , ub = nothing )
5983
@@ -68,6 +92,18 @@ using PSOGPU, StaticArrays, SciMLBase, Test, LinearAlgebra, Random
6892 maxiters = 500 )
6993
7094 @test sol. objective < 1e-4
95+
96+ sol = solve (prob,
97+ ParallelPSOKernel (n_particles; backend = CPU ()),
98+ maxiters = 500 )
99+
100+ @test sol. objective < 1e-4
101+
102+ sol = solve (prob,
103+ ParallelSyncPSOKernel (n_particles; backend = CPU ()),
104+ maxiters = 500 )
105+
106+ @test sol. objective < 1e-4
71107end
72108
73109# # Separate tests for N = 4 as the problem becomes non-convex and requires more iterations to converge
102138
103139 @test sol. objective < 2e-3
104140
141+ sol = solve (prob,
142+ ParallelPSOKernel (n_particles; backend = CPU ()),
143+ maxiters = 1000 )
144+
145+ @test sol. objective < 2e-3
146+
147+ sol = solve (prob,
148+ ParallelSyncPSOKernel (n_particles; backend = CPU ()),
149+ maxiters = 1000 )
150+
151+ @test sol. objective < 2e-3
152+
105153 lb = @SVector fill (Float32 (- Inf ), N)
106154 ub = @SVector fill (Float32 (Inf ), N)
107155
122170 maxiters = 1000 )
123171
124172 @test sol. objective < 2e-3
173+
174+ sol = solve (prob,
175+ ParallelPSOKernel (n_particles; backend = CPU ()),
176+ maxiters = 1000 )
177+
178+ @test sol. objective < 2e-3
179+
180+ sol = solve (prob,
181+ ParallelSyncPSOKernel (n_particles; backend = CPU ()),
182+ maxiters = 1000 )
183+
184+ @test sol. objective < 2e-3
125185end
0 commit comments