# NOT RUN {
model = list(
sersic = list(
xcen = c(180, 60),
ycen = c(90, 10),
mag = c(15, 13),
re = c(14, 5),
nser = c(3, 10),
ang = c(46, 80),
axrat = c(0.4, 0.6),
box = c(0.5,-0.5)
)
)
psffwhm=3
# Use OpenCL if available
# Makes a list of available OpenCL environments optionally with double precision if all
# devices support it
openclenvs = profitGetOpenCLEnvs(make.envs=TRUE)
nbench=1L
# Try up to 5L if you're adventurous and don't mind waiting up to a minute for
# single-threaded brute
for(finesample in c(1L:3L))
{
model.image=profitMakeModel(model=model, dim=rep(200,2), finesample=finesample, returnfine=TRUE)$z
psf=profitMakeGaussianPSF(fwhm=3*finesample,dim=rep(25*finesample + 1 - mod(finesample,2),2))
# Benchmark model integration:
bench=profitBenchmark(model.image, modellist=model, nbench=nbench, openclenvs=openclenvs,
methods=profitAvailableIntegrators())
#Print relevant results
print(profitBenchmarkResultStripPointers(bench$result)[
c("name","env_name","version","dev_name",paste0("tinms.mean_",c("single","double")))])
# Benchmark convolution:
bench=profitBenchmark(model.image, psf=psf, nbench=nbench, openclenvs=openclenvs,
methods=profitAvailableConvolvers())
#Print relevant results
print(profitBenchmarkResultStripPointers(bench$result)[
c("name","env_name","version","dev_name",paste0("tinms.mean_",c("single","double")))])
# The old benchmarking method, for reference
temp=profitBenchmarkConv(model.image, psf = psf, nbench=nbench)
}
# }
Run the code above in your browser using DataLab