v1.0.0-rc.144 (#54)
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m58s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m53s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m39s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m34s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m18s
Build Packages / build:rpm (rocky8) (push) Successful in 10m4s
Build Packages / build:rpm (rocky9) (push) Successful in 11m17s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m47s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m33s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / Unit tests (push) Has been skipped
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 1m8s
Build Packages / XDS test (durin plugin) (push) Successful in 7m40s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m23s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m9s
Build Packages / DIALS test (push) Successful in 11m15s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m58s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m53s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m39s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m34s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m18s
Build Packages / build:rpm (rocky8) (push) Successful in 10m4s
Build Packages / build:rpm (rocky9) (push) Successful in 11m17s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m47s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m33s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / Unit tests (push) Has been skipped
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 1m8s
Build Packages / XDS test (durin plugin) (push) Successful in 7m40s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m23s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m9s
Build Packages / DIALS test (push) Successful in 11m15s
This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132. * jfjoch_broker: Improve performance of preview JPEG image generator at receiver startup (saving about 150 ms on measurement start for 16M) Reviewed-on: #54 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
This commit was merged in pull request #54.
This commit is contained in:
@@ -40,9 +40,9 @@ AzimuthalIntegrationMapping::AzimuthalIntegrationMapping(const DiffractionExperi
|
||||
nthreads = std::clamp<size_t>(nthreads, 1, 64);
|
||||
|
||||
if (!experiment.IsGeometryTransformed())
|
||||
SetupRawGeom(experiment, mask.GetMaskRaw(experiment), nthreads);
|
||||
SetupRawGeom(experiment, mask.GetMaskRaw());
|
||||
else
|
||||
SetupConvGeom(experiment.GetDiffractionGeometry(),mask.GetMask(), nthreads);
|
||||
SetupConvGeom(experiment.GetDiffractionGeometry(),mask.GetMask());
|
||||
|
||||
UpdateMaxBinNumber();
|
||||
}
|
||||
@@ -55,9 +55,7 @@ void AzimuthalIntegrationMapping::SetupConvGeomRows(const DiffractionGeometry &g
|
||||
}
|
||||
}
|
||||
|
||||
void AzimuthalIntegrationMapping::SetupConvGeom(const DiffractionGeometry &geom,
|
||||
const std::vector<uint32_t> &mask,
|
||||
size_t nthreads) {
|
||||
void AzimuthalIntegrationMapping::SetupConvGeom(const DiffractionGeometry &geom, const std::vector<uint32_t> &mask) {
|
||||
pixel_to_bin.resize(width * height, UINT16_MAX);
|
||||
pixel_resolution.resize(width * height, 0);
|
||||
corrections.resize(width * height, 0);
|
||||
@@ -68,13 +66,16 @@ void AzimuthalIntegrationMapping::SetupConvGeom(const DiffractionGeometry &geom,
|
||||
if (nthreads <= 1) {
|
||||
SetupConvGeomRows(geom, mask, 0, height);
|
||||
} else {
|
||||
nthreads = std::min(nthreads, height);
|
||||
auto local_nthreads = std::min(nthreads, height);
|
||||
std::vector<std::future<void>> futures;
|
||||
futures.reserve(local_nthreads);
|
||||
|
||||
for (size_t t = 0; t < nthreads; ++t)
|
||||
for (size_t t = 0; t < local_nthreads; ++t)
|
||||
futures.emplace_back(std::async(std::launch::async,
|
||||
&AzimuthalIntegrationMapping::SetupConvGeomRows,
|
||||
this, std::cref(geom), std::cref(mask), t * height / nthreads, (t + 1) * height / nthreads));
|
||||
this, std::cref(geom), std::cref(mask),
|
||||
t * height / local_nthreads,
|
||||
(t + 1) * height / local_nthreads));
|
||||
|
||||
for (auto &f: futures)
|
||||
f.get();
|
||||
@@ -82,7 +83,7 @@ void AzimuthalIntegrationMapping::SetupConvGeom(const DiffractionGeometry &geom,
|
||||
}
|
||||
|
||||
void AzimuthalIntegrationMapping::SetupRawGeom(const DiffractionExperiment &experiment,
|
||||
const std::vector<uint32_t> &mask, size_t nthreads) {
|
||||
const std::vector<uint32_t> &mask) {
|
||||
if (mask.size() != RAW_MODULE_SIZE * experiment.GetModulesNum())
|
||||
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Mask size invalid");
|
||||
|
||||
@@ -100,13 +101,13 @@ void AzimuthalIntegrationMapping::SetupRawGeom(const DiffractionExperiment &expe
|
||||
}
|
||||
}
|
||||
} else {
|
||||
nthreads = std::min<size_t>(nthreads, experiment.GetModulesNum());
|
||||
auto local_nthreads = std::min<size_t>(nthreads, experiment.GetModulesNum());
|
||||
std::vector<std::future<void>> futures;
|
||||
futures.reserve(nthreads);
|
||||
futures.reserve(local_nthreads);
|
||||
|
||||
for (size_t t = 0; t < nthreads; ++t) {
|
||||
const size_t module_begin = t * experiment.GetModulesNum() / nthreads;
|
||||
const size_t module_end = (t + 1) * experiment.GetModulesNum() / nthreads;
|
||||
for (size_t t = 0; t < local_nthreads; ++t) {
|
||||
const size_t module_begin = t * experiment.GetModulesNum() / local_nthreads;
|
||||
const size_t module_end = (t + 1) * experiment.GetModulesNum() / local_nthreads;
|
||||
|
||||
futures.emplace_back(std::async(std::launch::async, [&, module_begin, module_end] {
|
||||
for (size_t m = module_begin; m < module_end; ++m) {
|
||||
|
||||
Reference in New Issue
Block a user