Skip to content
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

Banff presentation rebased #3898

Merged
merged 6 commits into from
Jul 1, 2024

Conversation

HechtiDerLachs
Copy link
Collaborator

Rebase of #3891 with some fixes.

@HechtiDerLachs HechtiDerLachs marked this pull request as draft June 29, 2024 19:08
@HechtiDerLachs
Copy link
Collaborator Author

It looks like some changes introduced here are quite expensive. vinberg1.jlcon did terminate, but probably took a long time. I will investigate and do some comparisons.

@benlorenz
Copy link
Member

It looks like some changes introduced here are quite expensive. vinberg1.jlcon did terminate, but probably took a long time. I will investigate and do some comparisons.

The timings don't look that bad, vinberg_1 took about 1 minute:

Sat, 29 Jun 2024 19:39:02 GMT    vinberg_1.jlcon
....
Sat, 29 Jun 2024 19:40:26 GMT    vinberg_2.jlcon: skip

There are quite a few GC pauses in between but that is not unusual.

The booktests ran from 19:15 until it got stuck in zariski.jlcon at 19:42, which is the same time and result as we have on master. It will hopefully be fixed via singular.

@HechtiDerLachs
Copy link
Collaborator Author

Thanks for having a look!

I was afraid that the booktests only got cancelled, because the vinberg_1.jlcon had already taken up too much of the time. But indeed I have no trouble running this test locally.

I also tried the testfile for elliptic_surfaces.jl and got the following timings.
Before:

606.089320 seconds (3.03 G allocations: 116.741 GiB, 8.48% gc time)

620.284879 seconds (3.03 G allocations: 115.920 GiB, 8.75% gc time)

With this branch:

601.933683 seconds (2.93 G allocations: 114.751 GiB, 8.59% gc time)

662.196737 seconds (2.84 G allocations: 108.817 GiB, 8.91% gc time)

So memory consumption decreased with no significant impact on computing time. I think this is all good then.

@HechtiDerLachs HechtiDerLachs marked this pull request as ready for review June 30, 2024 19:40
@hassert :IdealSheaves 1 !isone(Q)
@hassert :IdealSheaves 1 is_prime(result)
set_attribute!(result, :is_prime=>true)
return result
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please either remove the old code or add an algorithm option if you think that it still performs better in some cases.

@@ -479,13 +538,53 @@ function _self_intersection(I::AbsIdealSheaf)
return get_attribute(I, :_self_intersection)::Int
end

function _is_known_to_be_one(I::AbsIdealSheaf, U::AbsAffineScheme;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May I suggest to name this function
has_is_one(I::AbsIdealSheaf, U::AbsAffineScheme)
and in its body to call
has_is_one(I::Ideal) ?
We have the has_is_... syntax already in some other places.
It means: has cached the value already ( or it is trivial to compute).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I saw has_is_one being introduced. However, it is something different: Here we ask whether an ideal sheaf is known to be isomorphic to the unit ideal sheaf. has_is_one is asking whether it's easy to decide this question. The implementations are different and it would be more work to adapt this here. Since it's an internal function, I suggest to leave this for the moment.

Copy link

codecov bot commented Jul 1, 2024

Codecov Report

Attention: Patch coverage is 91.30435% with 8 lines in your changes missing coverage. Please review.

Project coverage is 83.85%. Comparing base (5acca40) to head (198d1ba).
Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3898      +/-   ##
==========================================
- Coverage   83.87%   83.85%   -0.02%     
==========================================
  Files         589      588       -1     
  Lines       80864    80891      +27     
==========================================
+ Hits        67823    67835      +12     
- Misses      13041    13056      +15     
Files Coverage Δ
src/Rings/mpolyquo-localizations.jl 72.91% <100.00%> (ø)
...ental/Schemes/src/MorphismFromRationalFunctions.jl 51.00% <0.00%> (-0.19%) ⬇️
experimental/Schemes/src/IdealSheaves.jl 78.67% <92.30%> (+0.12%) ⬆️
experimental/Schemes/src/WeilDivisor.jl 71.24% <92.06%> (+2.19%) ⬆️

... and 9 files with indirect coverage changes

@HechtiDerLachs HechtiDerLachs merged commit a760cbb into oscar-system:master Jul 1, 2024
28 of 29 checks passed
@HechtiDerLachs HechtiDerLachs deleted the banff_rebased branch July 1, 2024 10:43
@HechtiDerLachs HechtiDerLachs added backport 1.1.x backport for release 1.1 and removed backport 1.1.x backport for release 1.1 labels Jul 3, 2024
simonbrandhorst pushed a commit that referenced this pull request Jul 10, 2024
* Make kernel computation more coherent.

* Switch to pushforward in production for prime ideal sheaves.

* Improve heuristics for colength computations.

* Fix heuristic for pullback computations.

* Fix faulty production of ideals.

* Add algorithm keyword and tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants