Cíl:
Cílem projektu je vytvořit vysoce efektivní a snadno použitelnou knihovnu pro numerické výpočty. Knihovna by měla mít podporu pro základní numerické metody jako konečné diference, konečně objemy nebo konečné prvky. Ty by měly být podpořeny výkonnými řešici lineárních i nelineárních systému. Plánuje se implementace multigridních metod a efektivních předpodmínění. Knihovna by měla efektivně využívat GPU, vícejádrové procesory a výpočetní klastry.
Stručný popis:
Knihovna hodně využívá šablon v C++, což zlepšuje její výkonnost a flexibilitu. Odtud také pochází její název Template Numerical Library. Podobných knihoven je pomerně dost, ale mnoho z nich je psáno v jazyce C tj. neobjektově. Často to znesnadňuje vývoj kódu využívající tyto knihovny. A jen málo numerických knihoven má opravdu nativní podporu pro GPU. Knihovna je postavena na rozhraní CUDA společnosti Nvidia. Z důvodů nedávného otevření standardu CUDA se do budoucna nepočítá s podporou OpenCL. Projekt je součástí CUDA Research Center na katedře matematiky na FJFI.
Co už knihovna umí a podporuje?
Co se plánuje?
Informace pro zájemce:
Zájemci o vývoj této knihovny se nemusí obávat studia náročné matematiky. Lze se zabývat i jen pokročilými optimalizacemi jak pro GPU, tak ale i pro vícejádrové procesory. Také není nezbytně nutné psát kód pro GPU. Student se může naučit práci na větším projektu v týmu. To obsahuje používání verzovacích nástrojů, psaní testů, dokumentace apod. Tím lze získat cenné zkušenosti do budoucna. Naopak, zájemci o náročné počítačové simulace mohou implementovat a testovat různá numerická schémata například pro simulace proudění. V obou případech je velmi pravděpodobné, že vytvořený kód bude v budoucnu využit při některých praktických projektech.
Kdo už na tomto tématu pracoval?