Julia (programovací jazyk) - Julia (programming language)

Julie
Julia Programming Language Logo.svg
Paradigma Multi-paradigma : vícenásobné odeslání (primární paradigma), procedurální , funkční , meta , vícestupňové
Navrhl Jeff Bezanson , Alan Edelman , Stefan Karpinski , Viral B. Shah
Vývojář Jeff Bezanson , Stefan Karpinski , Viral B. Shah a další přispěvatelé
Poprvé se objevil 2012 ; Před 9 lety ( 2012 )
Stabilní uvolnění
1.6.3  Upravte to na Wikidata / 23. září 2021 ; Před 25 dny ( 23. září 2021 )
Náhled vydání
1.7.0-rc1 / 12. září 2021 ; Před 36 dny a na 1.7-rc2 a 1.6.4 se pracuje a 1.8.0-DEV s denními aktualizacemi ( 2021-09-12 )
Kázeň při psaní Dynamický , silný , nominativní , parametrický , volitelný
Implementační jazyk Julia, C , C ++ , schéma , LLVM
Plošina Tier 1: x86-64 , IA-32 , CUDA /Nvidia GPU
Tier 2: 64-bit ARM , 32-bit Windows (64-bit is tier 1)
Tier 3: 32-bit ARM , PowerPC , AMD GPU.
Má také podporu pro OneAPI /Intel GPU a Google TPU a má podporu webového prohlížeče (pro JavaScript a WebAssembly ) a může fungovat v systému Android . Další podrobnosti viz „podporované platformy“ .
OS Linux , macOS , Windows a FreeBSD
Licence MIT (jádro), GPL v2 ; A Makefile možnost vynechává GPL knihovny
Rozšíření názvu souboru .jl
webová stránka JuliaLang.org
Ovlivněn

Julia je dynamický programovací jazyk na vysoké úrovni . Přestože se jedná o obecný jazyk a lze jej použít k psaní jakékoli aplikace, mnoho z jeho funkcí se dobře hodí pro numerickou analýzu a výpočetní vědu .

Charakteristickými aspekty Juliina designu je typový systém s parametrickým polymorfismem v dynamickém programovacím jazyce ; s více odesláním jako základním paradigmatem programování . Julia podporuje souběžné , (sestavovatelné) paralelní a distribuované výpočetní (s nebo bez použití MPI nebo vestavěný odpovídající „ OpenMP -Style“ závity), a přímé volání z C a Fortran knihoven bez lepidla kódu . Julia používá v komunitě Julia kompilátor just-in-time (JIT), který se označuje jako „ just- before -of-time “ (JAOT), protože Julia před spuštěním kompiluje veškerý kód (ve výchozím nastavení) do strojového kódu .

Julia sbírá odpadky , používá dychtivé hodnocení a obsahuje efektivní knihovny pro výpočty s plovoucí desetinnou čárkou , lineární algebru , generování náhodných čísel a shodu regulárních výrazů . K dispozici je mnoho knihoven, včetně některých (např. Pro rychlé Fourierovy transformace ), které byly dříve součástí Julie a nyní jsou oddělené.

Několik vývojových nástrojů podporuje kódování v aplikaci Julia, například integrovaná vývojová prostředí (např. Kód Visual Studio společnosti Microsoft , s dostupnými rozšířeními přidávajícími podporu Julia do IDE, např. Poskytování podpory ladění a lintingu ); s integrovanými nástroji, např. profiler (a podpora grafu plamene je k dispozici pro vestavěný), debugger a balíček Rebugger.jl „podporuje ladění s opakovaným spuštěním “ a další.

Dějiny

Práce na Julii zahájili v roce 2009 Jeff Bezanson, Stefan Karpinski , Viral B. Shah a Alan Edelman , kteří se rozhodli vytvořit svobodný jazyk, který by byl jak na vysoké úrovni, tak rychlý. Dne 14. února 2012 tým spustil webovou stránku s příspěvkem na blogu, který vysvětluje poslání jazyka. V rozhovoru pro InfoWorld v dubnu 2012 Karpinski o jménu „Julia“ řekl: „Neexistuje žádný dobrý důvod, opravdu. Vypadalo to jako hezké jméno.“ Bezanson řekl, že si vybral jméno na doporučení přítele, o několik let později napsal:

Možná Julia znamená „Jeffův neobvyklý lisp je automatizovaný“?

Od spuštění v roce 2012 se komunita Julia rozrostla a od roku 2020 „Julia byla stažena uživateli z více než 10 000 společností a je využívána na více než 1 500 univerzitách“ s více než 29 miliony stažení od července 2021, což je nárůst o 87%. za rok a ekosystém balíčku Julia má více než 11,8 milionu řádků kódu (včetně dokumentů a testů). Akademická konference JuliaCon pro uživatele a vývojáře Julia se koná každoročně od roku 2014. JuliaCon2020 přivítá více než 28 900 unikátních diváků a poté JuliaCon2021 překoná všechny předchozí rekordy (více než 300 prezentací JuliaCon2021 je k dispozici zdarma na YouTube, oproti 162 předloni) , a 43 000 unikátních diváků během konference.

Verze 0.3 byla vydána v srpnu 2014, verze 0.6 v červnu 2017. Julia 0.7 i verze 1.0 byla vydána 8. srpna 2018. Práce na Julia 0.7 byly „obrovským počinem“ (např. Kvůli „zcela novému optimalizátoru“), a byly provedeny některé změny v sémantice, např. zjednodušeno iterační rozhraní; a syntaxe se trochu změnila (syntaxe je nyní stabilní a stejná pro 1.xa 0.7).

Kandidát na verzi pro Julia 1.0 (Julia 1.0.0-rc1) byl vydán 7. srpna 2018 a konečná verze o den později. Julia 1.0.x je nejstarší stále podporovanou verzí s dlouhodobou podporou (LTS), jinak je podporována pouze nejnovější verze v každém časovém okamžiku. Julia 1.1 byla vydána v lednu 2019, například s novou jazykovou funkcí „stacku výjimek“. Vydání oprav se očekávalo zhruba měsíčně, pro 1.4.x a 1.0.x a Julia 1.0.1 až 1.0.5 tento plán dodržovaly. Julia 1.2 byla vydána v srpnu 2019 a má např. Vestavěnou podporu pro webové prohlížeče (pro testování, pokud běží na virtuálním počítači JavaScript ). Julia 1.3 přidala např. Skládatelný vícevláknový paralelismus a systém binárních artefaktů pro balíčky Julia.

Julia 1.4 umožnila lepší syntaxi pro indexování polí pro zpracování např. Polí založených na 0 , A[begin+1]pro druhý prvek pole A. Změněn byl také model paměti. Drobná verze 1.4.2 opravena, např. Problém Zlib , zdvojnásobení dekompresní rychlosti.

Julia 1.5 vydaná v srpnu 2020 přidala podporu ladění záznamu a přehrávání pro nástroj rr od Mozilly . Je to velká verze se změněným chováním v REPL (soft scope), stejně jako v Jupyteru , ale plně kompatibilní s non-REPL kódem. Většina podprocesů API byla označena jako stabilní a s touto verzí „libovolné neměnné objekty - bez ohledu na to, zda mají pole, která odkazují na proměnlivé objekty nebo ne - lze nyní přidělit do zásobníku“, což snižuje přidělení haldy, např. viewsJiž nepřiděluje. Všechny verze pracovaly na výkonu, ale zejména pracovaly na Julia 1.5 zaměřené na takzvaný „time-to-first-plot“ výkon, obecně rychlost samotné kompilace (na rozdíl od výkonu generovaného kódu) a přidává nástroje aby vývojáři vylepšili načítání balíčků. Julia 1.6 také zlepšuje takový výkon ještě více.

Balíčky, které fungují v Julia 1.0.x, by měly fungovat ve verzi 1.1.x nebo novější, povolené zárukou syntaxe dopředu kompatibilní . Významnou výjimkou byly cizojazyčné knihovny rozhraní, jako je JavaCall.jl (pro jazyky JVM jako Java nebo Scala ) a Rcall.jl ( jazyk R ) kvůli některým změnám souvisejícím s navlékáním vláken (v době, kdy všechny funkce vytváření vláken v Julii byly označeno jako experimentální). Problém byl obzvláště komplikovaný pro JVM Javy, protože má nějaká zvláštní očekávání ohledně toho, jak se používá adresní prostor zásobníku . Volané řešení JULIA_ALWAYS_COPY_STACKSbylo zveřejněno pro Julia 1.3.0, zatímco úplná oprava pro Javu čeká a nemá žádné stanovené datum splatnosti. Verze JVM od Javy 11 navíc tento problém nevykazují.

Julia 1.6 byla největší verzí od verze 1.0, rychlejší na mnoha frontách, např. Zavedla paralelní předkompilaci a rychlejší načítání balíčků, v některých případech „50x zrychlení v dobách načítání pro velké stromy binárních artefaktů“, a pravděpodobně se stane dalším dlouhodobým termín podpory (LTS) vydání Julia. Mezník pro verzi 2.0 v současné době nemá stanovené datum splatnosti.

Julia 1.6.3 byla vydána 23. září 2021 (a 1.6 se stane další verzí LTS) a Julia 1.7 a 1.8 jsou další milníky, přičemž 1,7 odloženo na 1. června 2021 (tj. Od té doby je 1,7 v zmrazení funkcí ) a jako verze 1.7 Julia se vrací k časově založeným verzím .

Pozoruhodná použití

Julia přilákala některé významné uživatele, od investičního manažera BlackRock , který jej používá pro analýzu časových řad , až po britskou pojišťovnu Aviva , která jej používá pro výpočty rizik . V roce 2015 Federální rezervní banka v New Yorku použila Julii k vytváření modelů ekonomiky Spojených států s tím, že jazyk odhad modelu odhadoval „asi 10krát rychleji“ než jeho předchozí implementace MATLAB . Spoluzakladatelé společnosti Julia založili společnost Julia Computing v roce 2015 s cílem poskytovat klientům placenou podporu, školení a poradenské služby, i když Julia je nadále volně používána. Na konferenci JuliaCon 2017 Jeffrey Regier, Keno Fischer a další oznámili, že projekt Celeste použil Julii k dosažení „špičkového výkonu 1,54  petaFLOPS s použitím 1,3 milionu vláken“ na uzlech 9300 Knights Landing ( KNL) superpočítače Cori II (Cray XC40) (tehdy 6. nejrychlejší počítač na světě). Julia se tak připojuje k C, C ++ a Fortranu jako jazykům na vysoké úrovni, ve kterých bylo dosaženo výpočtů petaFLOPS.

Tři ze spoluautorů Julia jsou laureáty Ceny Jamese H. Wilkinsona za numerický software 2019 (uděluje se každé čtyři roky) „za vytvoření Julie, inovativního prostředí pro vytváření vysoce výkonných nástrojů, které umožňují analýzu a řešení problémů výpočetní vědy “. Alan Edelman, profesor aplikované matematiky na MIT, byl také vybrán, aby obdržel Cenu IEEE Computer Society Sidney Fernbach Award 2019 „za vynikající průlomy ve vysoce výkonných počítačích, lineární algebře a výpočetní vědě a za příspěvky do programovacího jazyka Julia. "

V roce 2019 společnost Julia Computing oznámila „dostupnost programovacího jazyka Julia jako předem zabaleného kontejneru v registru kontejnerů NVIDIA GPU Cloud (NGC)“ a blogový příspěvek na webu společnosti Nvidia uvádí „Snadné nasazení Julia na x86 a Arm [.. ] Julia nabízí balíček pro komplexní ekosystém HPC zahrnující strojové učení, datovou vědu, různé vědecké oblasti a vizualizaci. “

Kromě toho „Julia byla vybrána Climate Modeling Alliance jako jediný jazyk implementace jejich globálního klimatického modelu příští generace. Tento mnohamilionový projekt si klade za cíl vybudovat klimatický model v měřítku Země, který poskytne přehled o účincích a výzvách změny klimatu. "

Julia je využívána NASA , např. Pro modelování dynamiky separace kosmických lodí (15 000krát rychlejší než dříve s Simulink/MATLAB) a brazilské INPE pro plánování vesmírných misí a satelitní simulaci. Další snahou je pracovat na integrovaném projektu ovládání satelitu ve vesmíru pomocí Julie pro řízení polohy .

JuliaCon

Od roku 2014 komunita Julia pořádá každoroční konferenci Julia zaměřenou na vývojáře a uživatele. První JuliaCon se konal v Chicagu a zahájil každoroční výskyt konference. Od roku 2014 se konference konala na několika místech, včetně MIT a University of Maryland, Baltimore. Během akce JuliaCon 2020, která probíhala virtuálně, se publikum akce rozrostlo z několika desítek lidí na více než 28 900 unikátních návštěvníků. JuliaCon 2021 se bude konat prakticky mezi 28. červencem a 30. červnem 2021 s hlavními adresami od Jana Viteka, Xiaoye Sherry Li a Soumith Chintala.

Komunita Julia

Komunita Julia má zastoupení na více platformách: Twitter, LinkedIn, Facebook, Slack, Zulip, Discord, Discourse, Stack Overflow, YouTube a další. Od května 2017 zaměstnává Julia Language komunitního manažera; první Alex Arsland, který sloužil do konce roku 2019 a v současné době Logan Kilpatrick.

Sponzoři

Jazyk Julia se v roce 2014 stal fiskálně sponzorovaným projektem NumFOCUS ve snaze zajistit dlouhodobou udržitelnost projektu. Dr. Jeremy Kepner z MIT Lincoln Laboratory byl zakládajícím sponzorem projektu Julia v jeho počátcích. Kromě toho, finanční prostředky z Gordona a Betty Moore Foundation , se Alfred P. Sloan Foundation , Intel a agentur, jako je NSF , DARPA , NIH , NASA a FAA byly zásadní pro rozvoj Julia. Mozilla , výrobce webového prohlížeče Firefox, se svými granty na výzkum pro H1 2019 sponzorovala „člena oficiálního týmu Julia“ pro projekt „Bringing Julia to the Browser“, což znamená pro Firefox a další webové prohlížeče. Jazyk Julia podporují také jednotliví dárci na GitHubu.

Výpočetní společnost Julia

Společnost Julia Computing, Inc. byla založena v roce 2015 společnostmi Viral B. Shah, Deepak Vinchhi, Alan Edelman, Jeff Bezanson, Stefan Karpinski a Keno Fischer .

V červnu 2017 získala Julia Computing  od společnosti General Catalyst and Founder Collective 4,6 milionu USD na financování osiva , ve stejný měsíc „ Nadace Alfreda P. Sloana „ poskytla 910 000 USD na podporu vývoje Julia s otevřeným zdrojovým kódem, včetně 160 000 USD na podporu rozmanitosti v Julia komunita “a v prosinci 2019 společnost získala  od vlády USA finanční prostředky ve výši 1,1 milionu dolarů na„ vývoj nástroje pro strojové učení neurálních komponent ke snížení celkové spotřeby energie systémů vytápění, větrání a klimatizace (HVAC) v budovách “. V červenci 2021 společnost Julia Computing oznámila, že získala sérii A za 24 milionů dolarů vedenou společností Dorilton Ventures, která rovněž vlastní tým Formule 1 Williams Racing , který je partnerem společnosti Julia Computing. Obchodní ředitel společnosti Williams uvedl: „Investování do společností budujících nejlepší cloudovou technologii ve své třídě je strategickým zaměřením všestranné platformy Dorilton a Julia s revolučními schopnostmi v simulaci a modelování je pro naše podnikání velmi důležité. Těšíme se na vložení Julia Výpočetní technika v technologicky nejvyspělejším sportu na světě “.

Jazykové funkce

Julia je univerzální programovací jazyk , který byl původně navržen pro numerické/technické výpočty. Je také užitečný pro programování systémů na nízké úrovni jako specifikační jazyk a pro webové programování na straně serveru i klienta.

Podle oficiálních webových stránek jsou hlavními rysy jazyka:

  • Vícenásobné odeslání : poskytuje schopnost definovat chování funkce v mnoha kombinacích typů argumentů
  • Systém dynamických typů : typy pro dokumentaci, optimalizaci a odeslání
  • Výkon blížící se staticky napsaným jazykům, jako je C.
  • Vestavěný správce balíčků
  • Lisp -like makra a další metaprogramovací zařízení
  • Volání funkcí C přímo: žádné obaly ani speciální API
  • Možnost propojení s jinými jazyky, např. Python s PyCall, R s RCall a Java/Scala s JavaCall
  • Mocný shell like schopností řídit jiné procesy
  • Navrženo pro paralelní a distribuované výpočty
  • Coroutines : lehké zelené navlékání
  • Uživatelem definované typy jsou stejně rychlé a kompaktní jako vestavěné moduly
  • Automatické generování efektivního specializovaného kódu pro různé typy argumentů
  • Elegantní a rozšiřitelné převody a propagace pro číselné a jiné typy
  • Efektivní podpora pro Unicode , mimo jiné včetně UTF-8

Multiple odeslání (také nazývaný multimethods v Lisp) je zobecněním o jediné odeslání  - za polymorfní mechanismus použitý v obyčejný objektově orientovaného programování (OOP) jazycích - která využívá dědičnosti . V Julii jsou všechny konkrétní typy podtypy abstraktních typů, přímo nebo nepřímo podtypy Anytypu, což je vrchol hierarchie typů. Betonové typy nemohou být samy subtypovány tak, jak mohou v jiných jazycích; místo toho se používá kompozice (viz také dědičnost vs. podtyp ).

Ve výchozím nastavení musí být běhový modul Julia předinstalován, protože je spuštěn zdrojový kód poskytovaný uživatelem. Alternativně lze pomocí PackageCompiler.jl vytvořit samostatný spustitelný soubor, který nepotřebuje žádný zdrojový kód Julia .

Juliina syntaktická makra (používaná pro metaprogramování ) jsou podobně jako makra Lisp výkonnější než makra nahrazující text používaná v preprocesoru některých jiných jazyků, jako je C, protože fungují na úrovni stromů abstraktní syntaxe (AST). Makro systém Julie je hygienický , ale také podporuje záměrné zachycení podle potřeby (jako u anaforických maker ) pomocí esckonstruktu.

Julia věnuje velkou inspiraci z různých dialektů Lisp, včetně schématu a Common Lisp , a sdílí mnoho rysů s Dylanem , také více odesílaní orientovaný dynamický jazyk (který se vyznačuje ALGOL like volné formě infix syntax spíše než Lisp- jako syntaxe předpony, zatímco v Julii je „všechno“ výraz ) a s pevností další numerický programovací jazyk (který nabízí vícenásobné odesílání a propracovaný systém parametrických typů). Zatímco Common Lisp Object System (CLOS) přidává hromadné odeslání do Common Lisp, ne všechny funkce jsou obecné funkce.

U Julia, Dylana a Fortress je rozšiřitelnost výchozí a integrované funkce systému jsou obecné a rozšiřitelné. V Dylanu je vícenásobné odeslání stejně důležité jako v Julii: všechny funkce definované uživatelem a dokonce i základní vestavěné operace, jako +jsou obecné. Dylanův typový systém však plně nepodporuje parametrické typy, které jsou typičtější pro ML jazyků . Ve výchozím nastavení CLOS neumožňuje odeslání na parametrické typy Common Lisp; takovou sémantiku rozšířené expedice lze přidat pouze jako rozšíření prostřednictvím protokolu CLOS Metaobject Protocol . Díky konvergentnímu designu Fortress také nabízí vícenásobné odeslání na parametrické typy; na rozdíl od Julie je však pevnost spíše staticky než dynamicky, s oddělenými fázemi kompilace a spouštění. Jazykové funkce jsou shrnuty v následující tabulce:

Jazyk Typový systém Obecné funkce Parametrické typy
Julie Dynamický Výchozí Ano
Lisp Dynamický Přihlásit se Ano (ale bez odeslání)
Dylan Dynamický Výchozí Částečné (bez odeslání)
Pevnost Statický Výchozí Ano

Balíček Unitful.jl je příkladem rozšiřitelnosti Julia a přidává do jazyka podporu pro měrné jednotky .

Interakce

Oficiální distribuce Julia obsahuje interaktivní příkazový řádek read-eval-print loop (REPL) s prohledávatelnou historií, dokončováním karet a speciálními režimy nápovědy a prostředí , které lze použít k rychlému experimentování a testování kódu. Následující fragment představuje ukázkový příklad relace, kde jsou řetězce automaticky zřetězeny pomocí println:

julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y
julia> println("Hello world!", " I'm on cloud ", f(0, 4), " as Julia supports recognizable syntax!")
Hello world! I'm on cloud 9 as Julia supports recognizable syntax!

REPL poskytuje uživateli přístup do systémového prostředí a do režimu nápovědy stisknutím ;nebo ?po výzvě (před každým příkazem). Také uchovává historii příkazů, a to i mezi relacemi. Kód, který lze otestovat v interaktivní sekci Julie nebo jej uložit do souboru s .jlpříponou a spustit z příkazového řádku zadáním:

 $ julia <filename>

Julii podporuje Jupyter , online interaktivní prostředí „notebooků“, a Pluto.jl , „ reaktivní notebook“ (kde jsou notebooky uloženy jako čisté soubory Julia), což je možná náhrada za předchozí typ.

Používejte s jinými jazyky

Julia je v praxi interoperabilní s mnoha jazyky (např. Většina populárních 10–20 jazyků v populárním používání). ccallKlíčové slovo Julia se používá k individuálnímu volání funkcí sdílené knihovny C-export nebo Fortran a balíčků k volání dalších jazyků, např. Pythonu, R, MATLABu, Javy nebo Scaly. A balíčky pro další jazyky, např Python (nebo R nebo Ruby), tj pyjulia, volat na Julia.

Julia má podporu pro nejnovější Unicode 13.0, s UTF-8 používaným pro řetězce (ve výchozím nastavení) a pro zdrojový kód Julia (v nejnovější verzi umožňuje pouze legální UTF-8), což znamená, že také umožňuje jako alternativu společné matematické symboly pro mnoho operátorů , například ∈ pro inoperátora.

Julia má balíčky podporující značkovací jazyky jako HTML (a také pro HTTP ), XML , JSON a BSON a obecně pro databáze a web.

Balíkový systém

Julia má vestavěný správce balíčků a obsahuje výchozí systém registru. Balíčky jsou nejčastěji distribuovány jako zdrojový kód hostovaný na GitHub , i když alternativy lze také použít stejně dobře. Balíčky lze také instalovat jako binární soubory pomocí artefaktů. Správce balíčků Julia se používá k dotazování a kompilaci balíků a také ke správě prostředí. Jsou podporovány registry federovaných balíků, což umožňuje lokální přidání jiných než oficiálních registrů.

Implementace

Julino jádro je implementováno v Julia a C , spolu s C ++ pro závislost LLVM . Analýza a snižování kódu jsou implementovány v FemtoLisp, dialektu schématu . Projekt infrastruktury kompilátoru LLVM se používá jako back-end pro generování 64bitového nebo 32bitového optimalizovaného strojového kódu v závislosti na platformě, na které Julia běží. Až na některé výjimky (např. PCRE ) je standardní knihovna implementována v aplikaci Julia. Nejpozoruhodnějším aspektem implementace Julie je její rychlost, která je často v poměru k plně optimalizovanému C kódu dva (a tedy často o řád rychlejší než Python nebo R ). Vývoj Julia začal v roce 2009 a open-source verze byla zveřejněna v únoru 2012.

Současné a budoucí platformy

Zatímco Julia má podporu macOS úrovně 1 , což znamená pro počítače Mac s procesorem Intel, zbrusu nové počítače Mac na bázi Apple M1 mají pouze experimentální podporu, s plnou podporou, na které dosud nefungovala platforma úrovně 1 (ani Windows na ARM ). Julia však tvrdí, že funguje „ok“ na počítačích M1 (se sníženým výkonem) díky (automatickému) použití Rosetty 2 (která potřebuje emulovat Julii). Práce na nativní podpoře M1 s plnou rychlostí (tj. Bez emulace) se většinou provádí a mnoho programů může fungovat, pokud se použije takové sestavení Julie, protože všechny testy Julia prošly až na jeden (kromě „Příliš mnoho otevřených souborů“).

Jelikož Julia používá JIT, Julia generuje nativní strojový kód přímo před prvním spuštěním funkce (tj. Jiný přístup než kompilace do bytecode , který standardně distribuujete, aby byl spuštěn na virtuálním počítači (VM), jako např. JVM ; poté přeloženo z bajtkódu za běhu, jak to udělal Dalvik na starších verzích Androidu).

Julia má čtyři úrovně podpory. Podporovány jsou všechny procesory IA-32, které zcela implementují subarchitekturu i686, a podporovány jsou 64bitové x86-64 (alias amd64 ), tj. Všechny starší než zhruba deset let. Procesory ARMv8 ( AArch64 ) jsou podporovány na druhé úrovni a ARMv7 a ARMv6 (AArch32) jsou podporovány s některými výhradami (nižší vrstva) pro Julia 1.0.x a také měly oficiální spustitelné soubory pro novější verze, zatímco 32bitová podpora ARM byla později snížena na úroveň 3 (pro Julia 1.5.1 jsou však k dispozici neoficiální binární soubory). CUDA (tj. GPU Nvidia; implementace PTX ) má podporu 1. úrovně s pomocí externího balíčku. Kromě toho existují také balíčky podporující další akcelerátory, jako jsou TPU od Googlu a některé (integrované) GPU od společnosti Intel, prostřednictvím oneAPI.jl a grafické karty AMD mají podporu např. OpenCL ; a experimentální podpora pro zásobník AMD ROCm . Stránka stahování Julie poskytuje spustitelné soubory (a zdroj) pro všechny oficiálně podporované platformy.

Na některých platformách může být Julia nutné zkompilovat ze zdrojového kódu (např. Původní Raspberry Pi ) se specifickými možnostmi sestavení, což bylo provedeno, a jsou k dispozici neoficiální předem vytvořené binární soubory (a pokyny k sestavení). Julia byla postavena na několika platformách ARM. PowerPC (64bitový) má podporu úrovně 3, což znamená, že se „může, ale nemusí stavět“. Julia je nyní podporována v Raspbian, zatímco podpora je lepší pro novější Pis, např. Pro ty s ARMv7 nebo novější; podporu Julia propaguje Nadace Raspberry Pi .

Prostřednictvím JSExpr.jl existuje také podpora pro webové prohlížeče/ JavaScript ; a alternativní jazyk webových prohlížečů WebAssembly má minimální podporu pro několik nadcházejících externích projektů Julia. Julia může kompilovat do ARM; teoreticky tedy lze aplikace pro Android vytvářet pomocí NDK , ale prozatím byla Julia nucena běžet pod Androidem pouze nepřímo, tj. s chrootem Ubuntu na Androidu.

Viz také

Poznámky

Reference

Další čtení

externí odkazy