Optimized numerical evaluation

Ouverte
#1,338 20 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
Active
Stack technique
csharp
Domaine
performance

Piste de recherche

Start by reviewing the existing numerical evaluation benchmarks mentioned in the issue and the current use of PeterO.Numbers. Compare speed, memory, accuracy, and precision across the proposed evaluation approaches, then identify concrete improvements and validate them with the benchmark suite; the issue is done only when all visible improvements are complete.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

The default precision today enables precise computation without necessarily merging terms just because they differ in floating point computation.

However, for some applications we may opt for less precision, because if we can use hardware floating point types for example, then the speedups will be great.

The same applies for some workloads on some computers that may benefit from specialized instructions or GPU delegation.

This is separate from function compilation because we are optimizing on node manipulation here.

So here are the following items to be determined:

  • Are the numerical evaluation types (PeterO.Numbers) the best available for C#? Have there been new work, or work that we can port over, on arbitrary precision evaluation?
  • How much can we optimize for each numerical precision (e.g. say 10 digits - would double evaluation suffice then cast back? may internals use double precision evaluation for speed at 10 digits precision?)
  • What is the Pareto frontier of (speed, memory) vs accuracy vs precision, on each workload (presumably this is the benchmarks that we currently track?)
  • How would available computing resources, say multiple cores, or GPU availability, change this? Can we take advantage of it?
  • What applications should choose what precisions? Does this relate to other settings we provide?
  • How should precision be tuned? Is it a good idea for it to be auto tuned by default?

Use this issue to track improvements; only close when all visible improvements are done.

Langage dominant
C#
Étoiles
832
Forks
79
Merge moyen
1 h 12 min
PR mergées (30 j)
518

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ASC-Community/AngouriMath

Toutes les issues de ASC-Community/AngouriMath

Issues similaires

Plus d'issues C#

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.