age 114
Podejmowanie decyzji z wykorzystaniem danych wyjściowych narzędzia perf......Page 116
Wprowadzenie do narzędzia numpy......Page 117
Zastosowanie narzędzia numpy w przypadku problemu dotyczącego dyfuzji......Page 120
Przydziały pamięci i operacje wewnętrzne......Page 122
Optymalizacje selektywne: znajdowanie tego, co wymaga poprawienia......Page 125
Moduł numexpr: przyspieszanie i upraszczanie operacji wewnętrznych......Page 128
Przestroga: weryfikowanie „optymalizacji” (biblioteka scipy)......Page 130
Podsumowanie......Page 132
7. Kompilowanie do postaci kodu C......Page 134
Jakie wzrosty szybkości są możliwe?......Page 135
Dlaczego informacje o typie ułatwiają przyspieszenie działania kodu?......Page 137
Użycie kompilatora kodu C......Page 138
Analiza przykładu zbioru Julii......Page 139
Kompilowanie czystego kodu Python za pomocą narzędzia Cython......Page 140
Użycie adnotacji kompilatora Cython do analizowania bloku kodu......Page 142
Dodawanie adnotacji typu......Page 144
Shed Skin......Page 148
Tworzenie modułu rozszerzenia......Page 149
Koszt związany z kopiami pamięci......Page 151
Cython i numpy......Page 152
Przetwarzanie równoległe rozwiązania na jednym komputerze z wykorzystaniem interfejsu OpenMP......Page 153
Numba......Page 155
Pythran......Page 156
PyPy......Page 158
Różnice związane z czyszczeniem pamięci......Page 159
Uruchamianie interpretera PyPy i instalowanie modułów......Page 160
Kiedy stosować poszczególne technologie?......Page 161
Uwaga dotycząca układów GPU......Page 163
Interfejsy funkcji zewnętrznych......Page 164
ctypes......Page 165
cffi......Page 167
f2py......Page 170
Moduł narzędzia CPython......Page 172
Podsumowanie......Page 175
8. Współbieżność......Page 176
Wprowadzenie do programowania asynchronicznego......Page 177
Przeszukiwacz szeregowy......Page 180
gevent......Page 182
tornado......Page 186
AsyncIO......Page 189
Przykład z bazą danych......Page 191
Podsumowanie......Page 194
9. Moduł multiprocessing......Page 196
Moduł multiprocessing......Page 199
Przybliżenie liczby pi przy użyciu metody Monte Carlo......Page 201
Zastosowanie obiektów języka Python......Page 202
Liczby losowe w systemach przetwarzania równoległego......Page 209
Zastosowanie narzędzia numpy......Page 210
Znajdowanie liczb pierwszych......Page 212
Kolejki zadań roboczych......Page 218
Weryfikowanie liczb pierwszych za pomocą komunikacji międzyprocesowej......Page 222
Rozwiązanie z prostym obiektem Pool......Page 226
Rozwiązanie z bardzo prostym obiektem Pool dla mniejszych liczb......Page 228
Użycie obiektu Manager.Value jako flagi......Page 229
Użycie systemu Redis jako flagi......Page 230
Użycie modułu mmap jako flagi......Page 233
Użycie modułu mmap do odtworzenia flagi......Page 234
Współużytkowanie danych narzędzia numpy za pomocą modułu multiprocessing......Page 237
Blokowanie plików......Page 243
Blokowanie obiektu Value......Page 246
Podsumowanie......Page 249
10. Klastry i kolejki zadań......Page 250
Zalety klastrowania......Page 251
Wady klastrowania......Page 252
Strata o wartości 462 milionów dolarów na giełdzie Wall Street z powodu kiepskiej strategii aktualizacji klastra......Page 253
24-godzinny przestój usługi Skype w skali globalnej......Page 254
Metoda rozpoczęcia tworzenia rozwiązania klastrowego......Page 255
Sposoby na uniknięcie kłopotów podczas korzystania z klastrów......Page 256
Użycie modułu Parallel Python dla prostych klastrów lokalnych......Page 258
Użycie modułu IPython Parallel do obsługi badań......Page 260
Użycie systemu NSQ dla niezawodnych klastrów produkcyjnych......Page 263
Kolejki......Page 264
Publikator/subskrybent......Page 265
Rozproszone obliczenia liczb pierwszych......Page 267
Inne warte uwagi narzędzia klastrowania......Page 269
Podsumowanie......Page 270
11. Mniejsze wykorzystanie pamięci RAM......Page 272
Obiekty typów podstawowych są kosztowne......Page 273
Moduł array zużywa mniej pamięci do przechowywania wielu obiektów typu podstawowego......Page 274
Analiza wykorzystania pamięci RAM w kolekcji......Page 277
Bajty i obiekty Unicode......Page 278
Efektywne przechowywanie zbiorów tekstowych w pamięci RAM......Page 280
Zastosowanie metod dla 8 milionów tokenów......Page 281
Wskazówki dotyczące mniejszego wykorzystania pamięci RAM......Page 289
Probabilistyczne struktury danych......Page 290
Obliczenia o bardzo dużym stopniu przybliżenia z wykorzystaniem jednobajtowego licznika Morrisa......Page 291
Wartości k-minimum......Page 292
Filtry Blooma......Page 296
Licznik LogLog......Page 300
Praktyczny przykład......Page 304
Narzędzie Social Media Analytics (SoMA) firmy Adaptive Lab......Page 308
Projekt narzędzia SoMA......Page 309
Serwisowanie systemu SoMA......Page 310
Technika głębokiego uczenia prezentowana przez firmę RadimRehurek.com......Page 311
Strzał w dziesiątkę......Page 312
Rady dotyczące optymalizacji......Page 314
Uczenie maszynowe o dużej skali gotowe do zastosowań produkcyjnych w firmie Lyst.com......Page 316
Budowanie mechanizmu rekomendacji......Page 317
Rada......Page 318
Platforma......Page 319
Dopasowywanie łańcuchów w czasie rzeczywistym z dużą wydajnością......Page 320
Raportowanie, monitorowanie, debugowanie i wdrażanie......Page 321
Wymagania wstępne......Page 323
Aplikacja internetowa......Page 324
Dystrybucja zadań i procesy robocze......Page 325
Rola języka Python w serwisie Lanyrd......Page 326
Rada dla programistów z branży......Page 327
Skorowidz......Page 330
Kolofon......Page 342
Komentarze są widoczne tylko dla osób zalogowanych!
Żaden z plików nie znajduje się na serwerze. Torrenty są własnością użytkowników. Administrator serwisu nie może ponieść konsekwencji za to co użytkownicy wstawiają, lub za to co czynią na stronie. Nie możesz używać tego serwisu do rozpowszechniania lub ściągania materiałów do których nie masz odpowiednich praw lub licencji. Użytkownicy odpowiedzialni są za przestrzeganie tych zasad.