You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
currently solposAM and spectrl2 only do one instant at a time, this means users have to loop over multiple datetimes or use map(solposAM, datetimes) to do a timeseries
using map or looping, even with comprehensions takes a while
PR Get solpos8760 - and version 0.3 (Carpenters) #14 introduced a tight loop in C, which is fast, but scales linearly with size, eg: 1000-timesteps are around 0.0018[s], but 10000-timesteps are 0.018[s] and so one
there is no use of multiple cores to speed up larger arrays of timesteps
using intel mkl TBB or mpi also seems too challenging, or too much maintenance hurdle, eg, installing mkl on every platform, and licensing issues?
using omp is possibly too challenging, or need to learn too much, so no time
proposal:
Cython prange does simple parallel loops, which might be a simpler approach that works well, but needs testing to prove out
risks:
parallel loops might not work for smaller arrays of timesteps, need some complicated strategy to determine when to apply?
alternatives:
do nothing
use intel mkl mpi or tbb or both?
use openMP
more research
port this code to numpy or numexpr and possibly use numba like the existing SPA in pvlib
Problem:
solposAM
andspectrl2
only do one instant at a time, this means users have to loop over multiple datetimes or usemap(solposAM, datetimes)
to do a timeseriesmap
or looping, even with comprehensions takes a whilePR Get solpos8760 - and version 0.3 (Carpenters) #14 introduced a tight loop in C, which is fast, but scales linearly with size, eg: 1000-timesteps are around 0.0018[s], but 10000-timesteps are 0.018[s] and so one
there is no use of multiple cores to speed up larger arrays of timesteps
using intel mkl TBB or mpi also seems too challenging, or too much maintenance hurdle, eg, installing mkl on every platform, and licensing issues?
using omp is possibly too challenging, or need to learn too much, so no time
proposal:
prange
does simple parallel loops, which might be a simpler approach that works well, but needs testing to prove outrisks:
alternatives:
The text was updated successfully, but these errors were encountered: