-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Alignment Configuration] Adapt alignment_configurator to use the free end gap configuration from method_global #2067
[Alignment Configuration] Adapt alignment_configurator to use the free end gap configuration from method_global #2067
Conversation
8f28f26
to
b4d2ca7
Compare
b4d2ca7
to
01d5e94
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thing, otherwise looks fine
if constexpr (traits_t::is_global && !config_t::template exists<seqan3::align_cfg::aligned_ends>()) | ||
{ | ||
auto method_global_cfg = cfg.get_or(align_cfg::method_global{}); | ||
|
||
if (method_global_cfg.free_end_gaps_sequence1_leading || | ||
method_global_cfg.free_end_gaps_sequence1_trailing || | ||
method_global_cfg.free_end_gaps_sequence2_leading || | ||
method_global_cfg.free_end_gaps_sequence2_trailing) | ||
{ | ||
// append an extra aligned_ends configuration for static configuration that is needed in | ||
// configure_free_ends_optimum_search (within select_find_optimum_policy) | ||
auto ends_config = seqan3::align_cfg::aligned_ends{seqan3::free_ends_none}; | ||
return configure_free_ends_optimum_search<function_wrapper_t, policies_t..., gap_init_policy_t>(cfg | ends_config); | ||
} | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if constexpr (traits_t::is_global && !config_t::template exists<seqan3::align_cfg::aligned_ends>()) | |
{ | |
auto method_global_cfg = cfg.get_or(align_cfg::method_global{}); | |
if (method_global_cfg.free_end_gaps_sequence1_leading || | |
method_global_cfg.free_end_gaps_sequence1_trailing || | |
method_global_cfg.free_end_gaps_sequence2_leading || | |
method_global_cfg.free_end_gaps_sequence2_trailing) | |
{ | |
// append an extra aligned_ends configuration for static configuration that is needed in | |
// configure_free_ends_optimum_search (within select_find_optimum_policy) | |
auto ends_config = seqan3::align_cfg::aligned_ends{seqan3::free_ends_none}; | |
return configure_free_ends_optimum_search<function_wrapper_t, policies_t..., gap_init_policy_t>(cfg | ends_config); | |
} | |
} |
I tried this without it and it still compiled and passed all tests, are you sure that you still need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did it?? 😆 Damn... I thought I had some test failures because of this...
And I thought Rene told me we still need the static distinction in some simd policy 🤷 But if all tests run through (and we will get rid of the old alignment code anyway) I guess I'll just remove it.
ac02a31
to
0fde0ba
Compare
@marehr The suggested removal cause GCC7 to fail with |
Interesting; only coverage-gcc7 ICEs, normal gcc-7 build worked I can't re-create that ICE locally :( |
Let's keep your patch for now; I thought about my request and I guess that you have in all test cases |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Re-assign me if you undid the change)
ok, thanks for the quick response.
Oh you are right!! This is probably why it works in this PR but I had the patch. I'll rebase. |
0fde0ba
to
30d6f46
Compare
Damn.. The coverage error persists. I'll investigate |
30d6f46
to
e276071
Compare
Codecov Report
@@ Coverage Diff @@
## release-3.0.2 #2067 +/- ##
=================================================
- Coverage 97.83% 97.82% -0.02%
=================================================
Files 264 263 -1
Lines 9926 9920 -6
=================================================
- Hits 9711 9704 -7
- Misses 215 216 +1
Continue to review full report at Codecov.
|
@marehr CI seems to pass now. I asked Enrico to run his script again to get the exact RAM usage again, but it might be fine. |
Every test with more than 1000 MiB RAM usage when compiling
|
@marehr polite ping :) if you have some time between the GCB stuff |
Codecov says: // within configure_edit_distance function
auto has_free_ends_trailing = [&] (auto first) constexpr
{
if constexpr (!decltype(first)::value)
{
return configure_edit_traits(std::false_type{});
}
else // Resolve correct property at runtime.
{
if (method_global_cfg.free_end_gaps_sequence1_trailing)
return configure_edit_traits(std::true_type{});
else
return configure_edit_traits(std::false_type{}); // says that this line wasn't executed;
}
}; The coverage report also didn't show that that line was executed (wasn't highlighted = line is neither green nor red), so that means we always didn't test that code via the public interface. |
@marehr Yes I noticed that too but since it wasn't newly introduced it was independent of this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to be sure, the memory footprint is fine now, right? Can we get a comparison between before and after?
(Enricos post wasn't completely clear which commit he benchmarked)
He benchmarked after I rebased on Renes changes and the highest memory footprint was now ~3.08GB which is only an increase of a few percent compared to before. Nothing compared to the 7-8GB in the initial PR. |
e276071
to
fbbff06
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, now finally we get rid of this rather complicated dispatching mechanism.
One minor thing 💅 only.
fbbff06
to
272ddad
Compare
Code coverage is not showing anything new that this PR introduces. |
Extracted from #2032
Only the last commit is relevant