Loyiha: Owl Scientific Computing - Draft:Owl Scientific Computing

Owl Scientific Computing
Owl sci lib logo.svg
Asl muallif (lar)Liang Vang
Tuzuvchi (lar)Jamiyat loyihasi
Dastlabki chiqarilish2016 (2016)
Barqaror chiqish
1.0.0 / 2020 yil 11-noyabr; 22 kun oldin (2020-11-11)..[1]
YozilganOCaml, C
Operatsion tizimO'zaro faoliyat platforma
TuriRaqamli tahlil
LitsenziyaMIT

Owl Scientific Computing da ishlab chiqilgan ilmiy va muhandislik hisoblash uchun dasturiy ta'minot tizimidir Kembrij universiteti informatika va texnologiyalar kafedrasi.[2] Bo'limdagi System Research Group (SRG) Owl kompaniyasini 2010 yilda SRGda ishlab chiqilgan vakillik tizimlaridan biri sifatida tan oladi.[3]Manba kodi ostida litsenziyalangan MIT litsenziyasi va Github omboridan kirish mumkin.[4]

Kutubxona asosan funktsional dasturlash tilida ishlab chiqilgan va ishlab chiqilgan OCaml. Noyob funktsional dasturlash tili sifatida OCaml ish vaqti samaradorligi, moslashuvchan modul tizimi, statik turni tekshirish, chiqindilarni oqilona yig'ish va kuchli xulosa chiqarish. Owl ushbu xususiyatlarni to'g'ridan-to'g'ri OCaml-dan oladi. Owl yordamida foydalanuvchilar qisqacha turdagi xavfsiz dasturlarni ishlashni yo'qotmasdan ixcham funktsional tilda yozishlari mumkin. U rivojlanishning tsiklini tezlashtiradi va prototipdan ishlab chiqarishgacha bo'lgan xarajatlarni kamaytiradi. Tizim OCaml-da intensiv vazifalarni hisoblash uchun de-fakto vositasi bo'lib xizmat qiladi.[5]

Tarix

Owl doktor Liang Vang OCaml laboratoriyalarida Post-Doc sifatida ishlagan paytda ishlab chiqilgan.[6]Owl 2016 yil iyul oyida keng ko'lamli taqsimlangan hisoblash uchun sinxron parallel mashinalarning konstruktsiyasini o'rgangan tadqiqot loyihasidan kelib chiqqan. O'sha paytda OCaml ekotizimidagi raqamli hisoblash uchun kutubxonalar juda cheklangan edi va asboblar o'sha paytda parchalangan edi. Turli analitik dasturlarni sinab ko'rish uchun juda past darajadagi algebra va tasodifiy sonlar generatorlaridan tortib algoritmik differentsiatsiya va chuqur neyron tarmoqlari kabi yuqori darajadagi narsalarga qadar ko'p sonli funktsiyalarni bajarish kerak. Ushbu kod parchalari to'plana boshladi. Keyinchalik bu funktsiyalar chiqarilib, Owl nomli mustaqil kutubxonaga o'ralgan.

Owl arxitekturasi boshida kamida o'nlab takrorlashni amalga oshirdi va ba'zi me'moriy o'zgarishlar juda keskin. Bir yillik intensiv rivojlanishdan so'ng, Owl ko'plab murakkab vazifalarni bajarishga qodir edi. masalan. rasm tasnifi. Doktor Liang Vang CUFP 2017-da OCaml-da ma'lumotlar haqidagi bilimlarni namoyish etish uchun o'quv qo'llanma o'tkazdi.[7]2018 yilda doktor Richard Mortier yilda Boyqush haqida nutq so'zladi Alan Turing instituti.[8]Ma'lumotlar sohasida OCaml va funktsional dasturlashni yanada rivojlantirish uchun Owl ko'plab o'quv materiallarini batafsil qo'llanmada taqdim etadi.[9]

Dizayn va xususiyatlari

Owl n o'lchovli massivlarni amalga oshirishda ko'plab rivojlangan raqamli funktsiyalarni amalga oshirdi. Boshqa raqamli kutubxonalar bilan taqqoslaganda, Owl ko'p jihatdan noyobdir, masalan. algoritmik differentsiatsiya va taqsimlangan hisoblash ishlab chiquvchilarning samaradorligini maksimal darajaga ko'tarish uchun yadro tizimining ajralmas tarkibiy qismlari sifatida kiritilgan. Quyidagi rasm Owl tizimining arxitekturasi haqida qush ko'rinishini beradi. Chap qismdagi kichik tizim Owl's Numerical tizimi. Ushbu quyi tizimdagi modullar uchta toifaga bo'linadi.

Owl raqamli kutubxonasining arxitekturasi.

Birinchisi, asosiy modullar ma'lumotlar bazasining asosiy tuzilmalarini, ya'ni N-o'lchovli massivni (Ndarray) zich va siyrak shakllarda o'z ichiga oladi. Ndarray moduli har xil raqam turlarini qo'llab-quvvatlaydi: float32, float64, complex32, complex64, int16, int32 va boshqalar. Shuningdek, yadro moduli boshqa past darajadagi raqamli kutubxonalarga, masalan, CBLAS va LAPACK. Ushbu kutubxonalar Lineer Algebra moduli bilan to'liq bog'langan.

Ikkinchi toifa - klassik tahlil modullari. Ushbu qism asosiy matematik va statistik funktsiyalarni o'z ichiga oladi, chiziqli algebra, regressiya, optimallashtirish, chizma tuzish va hk kabi rivojlangan matematik va statistik funktsiyalar statistik gipotezani sinovdan o'tkazish va Monte Karlo Markov zanjiri shuningdek, kiritilgan. Owl asosiy funktsional imkoniyat sifatida algoritmik farqlash (yoki avtomatik farqlash) va dinamik hisoblash grafigi modullari.

Owl arxitekturasidagi eng yuqori darajaga, masalan, yanada rivojlangan raqamli dasturlarga modullar kiradi neyron tarmoq, tabiiy tilni qayta ishlash, ma'lumotlarni qayta ishlash va boshqalar. Hayvonot bog'i tizimi samarali skript yaratish va kod almashish uchun ishlatiladi. Ikkinchi toifadagi modullar, ayniqsa algoritmik differentsiatsiya, ushbu darajadagi kodni juda ixcham qiladi.

O'ngdagi quyi tizim "Owl" ning qobiliyatini parallel va taqsimlangan hisoblash qobiliyatiga qadar kengaytiradigan "Actor Subsystem" deb nomlanadi. Asosiy g'oya, foydalanuvchi dasturini ketma-ket ijro etish rejimidan minimal harakat bilan parallel rejimga (har xil hisoblash dvigatellari yordamida) aylantirishdir. Usul ikkita quyi tizimni birgalikda yaratishdir funktsiyalar raqamli quyi tizimda aniqlangan modulning parallel versiyasini yaratish.

Ushbu rasmda aytib o'tilganlardan tashqari, Owl-da bir nechta boshqa xususiyatlar mavjud. Masalan, JavaScript va unikernel backends, kabi boshqa ramkalar bilan integratsiya TensorFlow va PyTorch, ramziy grafik orqali GPU va boshqa tezlashtiruvchi ramkalardan foydalanish va boshqalar.

Tadqiqot

Owl loyihasi tadqiqotga yo'naltirilgan bo'lib, bir nechta tegishli mavzular bo'yicha raqamli hisoblash tadqiqotlarini qo'llab-quvvatlaydi. Uning tadqiqot mavzularining ba'zilari quyida keltirilgan.

  • Sinxron parallel taqsimlangan mashinalarni o'rganish dizayni. Owl iterativ algoritmlarda tugunlarni sinxronlashtirish uchun namuna olishni taklif qiladi. Arxivda nashr etilgan asar qat'iy matematik isbotlar bilan ta'minlangan.[10] Ushbu g'oya ilgari surilganligini tasdiqlaydi va keyinchalik eng yaxshi Machine Learning konferentsiyalarida taklif qilindi.[11]
  • Owl-ning kichik kod bazasini yaratishga yordam beradigan omillardan biri shundaki, u atrofida rivojlangan analitik funktsiyalarni yaratadi algoritmik farqlash. Ushbu g'oya ham mashhurligini isbotladi va paradigmasiga aylanadi Differentsial dasturlash. Hozir u JuliaDiff kabi mashhur raqamli paketlarda qo'llanilmoqda.[12]
  • Hisoblash grafikasidan foydalanish Owl-da hisoblash uchun yana bir o'lchov optimallashtirishni taklif etadi. Bundan tashqari, hisoblash grafigi Owl dasturini va shunga o'xshash apparat tezlatuvchilarini ko'prik qiladi GPU va TPU. Keyinchalik, hisoblash grafigi amalda oraliq vakolatxonaga aylanadi. Kabi standartlar Neyron tarmoq almashinuvini oching va Neyron tarmoq almashinuvi formati kabi turli xil chuqur o'rganish tizimlari tomonidan keng qo'llab-quvvatlanmoqda TensorFlow va PyTorch.
  • Xizmat darajasidagi tarkib va ​​xizmat ko'rsatish g'oyasi Owl hayvonot bog'i quyi tizimida o'rganilgan. Prototip tarkibini yaratish, sinovdan o'tkazish, tarqatish, tasdiqlash va joylashtirishni o'z ichiga olgan kodni ishlab chiqishning turli bosqichlarini namoyish etadi. Bu keyingisiga juda o'xshaydi MLOps tushunchalar. Yaqinda ushbu mavzu OSDI kabi eng yaxshi tizim konferentsiyalarida e'tiborni tortmoqda.[13]

Ushbu yo'nalishlarning bir qismi bo'yicha olib borilgan izlanishlar natijasida Owl bir nechta nashrlarni ishlab chiqaradi. 2018 yilda ACM-da Ma'lumotlarni Analitikasi Xizmati Tarkibi va Edge Qurilmalarida Joylashtirish deb nomlangan maqola qabul qilindi SIGCOMM Ma'lumotlarni uzatish tarmoqlari uchun katta ma'lumotlarni tahlil qilish va mashinada o'rganish bo'yicha 2018 yilgi seminar.[14] Ikkala muzokaralar OCaml seminarida ham qabul qilinadi Funktsional dasturlash bo'yicha xalqaro konferentsiya 2019, raqamli oddiy differentsial tenglamani echish mavzularida,[15] va grafik protsessorlarda Owl hisobini amalga oshirish.[16]OCaml laboratoriyasida amaliyot ushbu mavzuni o'rganadi tasvir segmentatsiyasi va Owl-da tegishli xotirani optimallashtirish.[17]

Shuningdek qarang

Adabiyotlar

  1. ^ "Relizlar - boyo'g'li / boyo'g'li". Olingan 2020-11-11 - orqali GitHub.
  2. ^ "Boyqush, OCaml uchun ilmiy hisoblash". Olingan 2020-11-11.
  3. ^ "Tizim tadqiqot guruhi". Olingan 2020-11-11.
  4. ^ Owlbarn GitHub ombori, https://github.com/owlbarn/owl. Qabul qilingan 2020-11-01.
  5. ^ "OCamlverse: Mashinalarni o'rganish, ilmiy hisoblash va ma'lumotlarshunoslik". Olingan 2020-11-05.
  6. ^ "OCaml laboratoriyalari". Olingan 2020-11-01.
  7. ^ "Owl: OCaml-da ma'lumotlar fanlari". CUFP qo'llanmalari. 2017 yil. Olingan 2020-11-01.
  8. ^ "Funktsional raqamli dasturiy ta'minotni loyihalash". Alan Turing instituti. 2018 yil. Olingan 2020-11-05.
  9. ^ "OCaml Scientific Computing: funktsional dasturlash ma'lumotlar faniga javob beradi". Boyqush jamoasi. 2020 yil. Olingan 2020-11-18.
  10. ^ "Ehtimoliy sinxron parallellik". arxiv. 2017 yil. Olingan 2020-11-18.
  11. ^ "Ishonchsiz tarmoqlar bo'yicha tarqatilgan ta'lim". Mashinada o'rganish tadqiqotlari to'plami. 2019 yil. Olingan 2020-11-18.
  12. ^ "JuliaDiff". Yuliya. 2019 yil. Olingan 2020-11-18.
  13. ^ "Clockwork kabi DNNlarga xizmat ko'rsatish: pastdan yuqoriga qarab ishlashni taxmin qilish". Usenix. 2020 yil. Olingan 2020-11-18.
  14. ^ "BIG-DAMA Workshop 2018 dasturi". ACM. 2018 yil. Olingan 2020-11-05.
  15. ^ "OwlDE: ODE'larni birinchi darajali Owl fuqarolari qilish". OCaml ustaxonasi, ICFP 2019. 2019. Olingan 2020-11-11.
  16. ^ "GPU va TPU da boyo'g'li hisoblash ishlarini bajarish". OCaml ustaxonasi, ICFP 2019. 2019. Olingan 2020-11-11.
  17. ^ "Shaxsiy veb-sahifa, Pyer Vandenxov". 2018. Olingan 2020-11-05.