Skip to content

direct implementation of the Jacobian in precision_bump #19

@markus-grassl

Description

@markus-grassl

The function precision_bump computes the Jacobian using the package ForwardDiff.
This allows some flexibility in choosing the function used for the Newton method, but also creates some overhead (see below).

Using more than one thread (julia -t 10) results in increased wall-clock time for the calculation.
A direct implementation of the Jacobian has potential to reduce the overhead and to allow for better parallelisation.

julia> @time ghost499=precision_bump(ghost499,500);
Increase ghost precision...
Current ghost precision is 77 digits.
3966.658241 seconds (44.51 G allocations: 2.874 TiB, 30.61% gc time, 0.38% compilation time)
Current ghost precision is 107 digits.
6069.248028 seconds (44.50 G allocations: 3.521 TiB, 33.31% gc time)
Current ghost precision is 206 digits.
9994.251759 seconds (44.50 G allocations: 5.301 TiB, 36.14% gc time)
Current ghost precision is 409 digits.
13568.653595 seconds (44.50 G allocations: 8.538 TiB, 39.24% gc time)
Precision of BigFloat is now 818 digits.
Final ghost precision is 809 digits.
33628.157904 seconds (178.06 G allocations: 20.242 TiB, 36.21% gc time, 0.05% compilation time)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions