Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Podobne dokumenty
Metody numeryczne i statystyka dla in»ynierów

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Numeryczne zadanie wªasne

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Programowanie współbieżne... (10) Andrzej Baran 2010/11

Programowanie i struktury danych 1 / 44

Uczenie Wielowarstwowych Sieci Neuronów o

Aproksymacja funkcji metod najmniejszych kwadratów

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

LZNK. Rozkªad QR. Metoda Householdera

Makroekonomia Zaawansowana

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Programowanie wspóªbie»ne

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Makroekonomia Zaawansowana

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

Bash i algorytmy. Elwira Wachowicz. 20 lutego

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Lab. 02: Algorytm Schrage

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

a) nazwa:... b) adres siedziby:... c) NIP:... REGON:... adres:...

KONTENERY KONTENERY CHŁODNIE. Gama NASZE ROZWIĄZANIE CHŁODNICTWA STACJONARNEGO.

Algorytmy zwiazane z gramatykami bezkontekstowymi

Programowanie wspóªbie»ne

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

INSTRUKCJA DLA UCZESTNIKÓW ZAWODÓW ZADANIA

Elementy Modelowania Matematycznego Wykªad 9 Systemy kolejkowe

WordPad. Czyli mój pierwszy edytor tekstu

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Projekt edukacyjny z informatyki

Kurs obsªugi interfejsu I2C.

Model obiektu w JavaScript

Evidence Based Scheduling

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Temat: Co to jest optymalizacja? Maksymalizacja objętości naczynia prostopadłościennego za pomocą arkusza kalkulacyjngo.

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Koªo Naukowe Robotyków KoNaR. Plan prezentacji. Wst p Rezystory Potencjomerty Kondensatory Podsumowanie

Wyniki ogólnopolskiej analizy wyboru metody i wysoko ci przyj tych stawek w gminach wiejskich i miejskowiejskich

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Programowanie funkcyjne. Wykªad 13

P 0max. P max. = P max = 0; 9 20 = 18 W. U 2 0max. U 0max = q P 0max = p 18 2 = 6 V. D = T = U 0 = D E ; = 6

Programowanie Zespołowe

Laboratorium metod numerycznych numer 1

WST P DO PROGRAMOWANIA RÓWNOLEGŠEGO 1. KLASTER

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

MATEMATYKA POZIOM ROZSZERZONY PRZYK ADOWY ZESTAW ZADA NR 2. Miejsce na naklejk z kodem szko y CKE MARZEC ROK Czas pracy 150 minut

Kolokwium Zadanie 1. Dla jakich warto±ci parametrów a i b funkcja sklejona

Ćwiczenie 6.5. Otwory i śruby. Skrzynia V

Bilansowanie systemu dystrybucyjnego (w zakresie punktów WR, czyli punktów z dobową rejestracją poboru) 16 października 2014 r.

Procedura nadawania uprawnień do potwierdzania Profili Zaufanych w Urzędzie Gminy w Ryjewie

1 Bª dy i arytmetyka zmiennopozycyjna

Makroekonomia zaawansowana (1)

Pewne algorytmy algebry liniowej Andrzej Strojnowski

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

O pewnym zadaniu olimpijskim

OvidSP. Ovid Universal Search Wyszukiwanie bez granic.

Automatyzacja procesu publikowania w bibliotece cyfrowej

Metodydowodzenia twierdzeń

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Programowanie i struktury danych

Zagadnienia programowania obiektowego

CYFRYZACJA TELEWIZJI

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA. na obsługę bankową realizowaną na rzecz Gminy Solec nad Wisłą

Udoskonalona wentylacja komory suszenia

INFORMATOR TECHNICZNY WONDERWARE

Logowanie do systemu Faktura elektroniczna

Macierze i Wyznaczniki

POMOC PSYCHOLOGICZNO-PEDAGOGICZNA Z OPERONEM. Vademecum doradztwa edukacyjno-zawodowego. Akademia

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Subversion - jak dziaªa

Lekcja 6 Programowanie - Zaawansowane

PROJEKT EDUKACJI EKONOMICZNEJ O FINANSACH W BIBLIOTECE IV KONGRES BIBLIOTEK PUBLICZNYCH WARSZAWA PAŹDZIERNIKA 2013 ROKU

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Wtedy wystarczy wybrać właściwego Taga z listy.

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

PREZENTACJA SYSTEMU BUSINESS INTELLIGENCE TARGIT

Linux LAMP, czyli Apache, Php i MySQL

Wprowadzenie do środowiska

Problemy optymalizacyjne - zastosowania

Przykªady problemów optymalizacji kombinatorycznej

Przeksztaªcenia liniowe

ZARZ DZANIE ZESPO EM P DR PIOTR PILCH

Niewystarczający wynik badań przesiewowych słuch. Informacje ogólne dla rodziców

Ksztaªt orbity planety: I prawo Keplera

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Projekt z dnia 2 listopada 2015 r. z dnia r.

PERSON Kraków

Czy komputery potrafią mówić? Innowacyjne aplikacje wykorzystujące przetwarzanie dźwięku i mowy. Plan prezentacji.

Wektory w przestrzeni

Podstawy modelowania w j zyku UML

Ukªady równa«liniowych

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna

Transkrypt:

Optymalizacja R dlaczego warto przesi ± si na Linuxa? 19 listopada 2014

Wi cej informacji, wraz z dodatkowymi materiaªami mo»na znale¹ w repozytorium na GitHubie pod adresem https://github.com/zzawadz/ Prezentacja_ERKA_2014. Ewentualne uwagi i pytania mo»na kierowa na adres zawadzkizygmunt@gmail.com.

Rzecz o szybko±ci R R taki wolny... Rysunek : ródªo: http://julialang.org/... inne j zyki takie szybkie (oprócz Matlaba). rly?

Rzecz o szybko±ci R - cd. Rzeczywi±cie R nie jest demonem szybko±ci i mo»na pisa w nim BARDZO nieefektywny kod: library(microbenchmark) x = 1:10000 slow_sum = function(x) { sum = 0 for(i in 1:length(x)) sum = sum + x[i] sum } microbenchmark(sum(x), slow_sum(x)) ## Unit: microseconds ## expr min lq mean median uq ma ## sum(x) 12.320 12.5055 15.49794 16.530 18.1945 22.4 ## slow_sum(x) 4159.101 4271.8230 4642.03785 4395.957 5066.3590 6043.6 ## neval ## 100 ## 100

Dobrym pytaniem byªoby - "ale dlaczego R jest taki wolny?" R w zamierzeniach nie musiaª by demonem szybko±ci. R, a w zasadzie jego poprzednik S, miaª by gªównie interfacem do kodu fortranowego (ewentualnie innego j zyka). A sam interface nie musi by bardzo szybki, bylby tylko byª wygodny. Wi cej - https://www.youtube.com/watch?v=_hcpurb5ngs - prezentacja twórcy j zyka S - Johna Chambersa (równie» czªonka R Core Team), na tamat przeszªo±ci i przyszªo±ci R.

Zagadka! W R wyst puj trzy gªówne operatory wyªuskania warto±ci: x[1] x[[1]] x$a Sam R zostaª napisany w C. Pytanie brzmi: ile linijek kodu ma plik w którym te operatory s zdeniowane?

Zagadka! Rozwi zanie. Plik ten mo»na znale¹ w ¹ródªach R w /src/main/subset.c. Posiada on 1288 linijek... Tyle kodu ma jednak sens - w nim zawarte jest mi dzy innymi obsªugiwanie cz ±ciwego dopasowywania nazw w li±cie: x = list(dluga_nazwa = 1:5, inna_nazwa = 1:5) x$dlu # dziala! ## [1] 1 2 3 4 5 Ma to jednak oczywiste konsekwencje wydajno±ciowe.

Realizacja idei interface w praktyce - obliczenia macierzowe W praktyce jednak wydajno± R nie jest znacz cym problemem - w ko«cu miaª by gªównie interfacem dla innych j zyków i bardzo du»o kodu w R sªu»y jedynie wywoªaniu okre±lonej biblioteki, która wykonuje najci»sze obliczenia. Np. funckja eigen - sªu» ca obliczaniu warto±ci wªasnych i wektorów wªasnych korzysta z biblioteki do oblicze«macierzowych LAPACK (Linear Algebra PACKage), która zostaªa napisana w Fortranie. Mo»na to pozna po tym,»e wewn trz funkcji znajduje si linijka wywoªuj ca kod zewn trzny:.internal(la_rs(x, only.values)) # z eigen.call(...) # inny interface - do C i C++.External(...).C(...) # stary interface do C Denicj La_rs mo»na znale¹ w /src/modules/lapack/lapack.c, a szukaj c dalej w tym folderze mo»na równie» znale¹ kod fortranowy Lapack'a (ok 200k linii kodu - du»a rzecz...).

Lapack i BLAS Gdyby wej± gª biej, oka»e si,»e LAPACK (kod fortranowy), korzysta z implementacji BLASu zawieraj cej zbiór podstawowych operacji na macierzach takich jak np. mno»enie macierzowe. Sam BLAS to API (Application Programming Interface), opisuj ce jak powinna wygl da biblioteka do oblicze«macierzowych. Na podstawie tego opisu tworzy si implementacje które realizuj ce te obliczenia. Istnieje kilka implementacji BLASu - np. ATLAS, MKL i OpenBLAS. R równie» posiada swoj implementacj, jednak nie jest ona najszybsza...

... skoro ten standardowy R-owy BLAS nie jest najszybszy, to mo»e go podmieni na wydajniejszy?

... skoro ten standardowy R-owy BLAS nie jest najszybszy, to mo»e go podmieni na wydajniejszy? Zaraz b dzie opis jak to prosto zrobi na Linuxie...

... skoro ten standardowy R-owy BLAS nie jest najszybszy, to mo»e go podmieni na wydajniejszy? Zaraz b dzie opis jak to prosto zrobi na Linuxie...... ale co± za du»o tekstu w tej prezentacji. Dalszy tekst b dzie nudny...

... skoro ten standardowy R-owy BLAS nie jest najszybszy, to mo»e go podmieni na wydajniejszy? Zaraz b dzie opis jak to prosto zrobi na Linuxie...... ale co± za du»o tekstu w tej prezentacji. Dalszy tekst b dzie nudny...... mo»e by tak pokaza na»ywo, jak to si robi? Caªe dziaªanie wzorowane jest na wpisie z http://www.stat.cmu.edu/~nmv/2013/07/09/ for-faster-r-use-openblas-instead-better-than-atlas-trivial

... skoro ten standardowy R-owy BLAS nie jest najszybszy, to mo»e go podmieni na wydajniejszy? Zaraz b dzie opis jak to prosto zrobi na Linuxie...... ale co± za du»o tekstu w tej prezentacji. Dalszy tekst b dzie nudny...... mo»e by tak pokaza na»ywo, jak to si robi? Caªe dziaªanie wzorowane jest na wpisie z http://www.stat.cmu.edu/~nmv/2013/07/09/ for-faster-r-use-openblas-instead-better-than-atlas-trivial Czas na konsol!

... mam nadziej,»e prezentacja optymalizacji BLAS na»ywo si udaªa.

... mam nadziej,»e prezentacja optymalizacji BLAS na»ywo si udaªa. Je»eli tak, to znaczy,»e konsola nie jest taka straszna i mo»na w niej troszk poczarowa :)

Co dalej? Nie dawno Revolution Analytics wprowadziªo swoj wersj R (http://mran.revolutionanalytics.com/download/), która wykorzystuje MKL - czyli BLAS stworzony przez Intela - jest on naprawd szybki i by mo»e sztuczka z podmian R-owego BLAS-a przestaje mie jakiekolwiek znaczenie w przypadku u»ywania wersji od Revolution. Trzeba to sprawdzi!

Dlaczego warto przej± na Linuxa? System bardzo konsolowy - a co za tym idzie - bli»szy R. Nie ma Oce:) Czasem dosy problematyczny, a co za tym idzie frustruj cy (a to dobrze! http://youtu.be/jxwxefrau70?t=30m - wywiad z jednym z mistrzów R, nt. warto±ci frustracji).

Dzi kuj za uwag!