-
Notifications
You must be signed in to change notification settings - Fork 1
Description
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)