{"text_format":"2","workbook":"xls","n_sheets":1,"sheets":["report2"],"not_rendered":{"charts":0,"images":0,"macros":0,"external_links":1,"defined_names":1,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"report2","index":0,"n_rows":25,"n_cols":5,"rows_kept":25,"cut":false,"hidden":false,"merged":[[0,2,0,3],[0,4,0,5],[1,2,1,3],[1,4,1,5],[2,2,2,3],[2,4,2,5],[3,2,3,3],[5,2,5,3],[6,2,6,3],[7,2,7,3],[8,2,8,3],[9,2,9,3],[10,2,10,3],[12,2,12,3],[13,2,13,3],[16,2,16,3]],"flags":["formulas_cached_only"]}
[null,"1.","Record Nr.",null,"UNINA9910816885903321"]
[null,null,"Autore",null,"Zaccone Giancarlo"]
[null,null,"Titolo",null,"Python parallel programming cookbook : master efficient parallel programming to build powerful applications using Python / / Giancarlo Zaccone"]
[null,null,"Pubbl/distr/stampa",null,"Birmingham, England ; ; Mumbai, India : , : Packt Publishing, , 2015"]
[{"$nulls":4},"©2015"]
[null,null,"ISBN",null,"1-78528-672-2"]
[null,null,"Edizione",null,"[1st edition]"]
[null,null,"Descrizione fisica",null,"1 online resource (286 p.)"]
[null,null,"Collana",null,"Quick answers to common problems"]
[null,null,"Disciplina",null,"005.275"]
[null,null,"Soggetti",null,"Parallel programming (Computer science)"]
[{"$nulls":4},"Python (Computer program language)"]
[null,null,"Lingua di pubblicazione",null,"Inglese"]
[null,null,"Formato",null,"Materiale a stampa"]
[null,null,null,"Livello bibliografico","Monografia"]
[null,null,null,"Note generali","Includes index."]
[null,null,"Nota di contenuto",null,"\"\"Cover\"\"; \"\"Copyright\"\"; \"\"Credits\"\"; \"\"About the Author\"\"; \"\"About the Reviewers\"\"; \"\"www.PacktPub.com\"\"; \"\"Table of Contents\"\"; \"\"Preface\"\"; \"\"Chapter 1: Getting Started with Parallel Computing and Python\"\"; \"\"Introduction\"\"; \"\"The parallel computing memory architecture\"\"; \"\"Memory organization\"\"; \"\"Parallel programming models\"\"; \"\"How to design a parallel program\"\"; \"\"How to evaluate the performance of a parallel program\"\"; \"\"Introducing Python\"\"; \"\"Python in a parallel world\"\"; \"\"Introducing processes and threads\"\"; \"\"Start working with processes in Python\"\""]
[{"$nulls":4},"\"\"Start working with threads in Python\"\"\"\"Chapter 2: Thread-based Parallelism\"\"; \"\"Introduction\"\"; \"\"Using the Python threading module\"\"; \"\"How to define a thread\"\"; \"\"How to determine the current thread\"\"; \"\"How to use a thread in a subclass\"\"; \"\"Thread synchronization with Lock and RLock\"\"; \"\"Thread synchronization with RLock\"\"; \"\"Thread synchronization with semaphores\"\"; \"\"Thread synchronization with a condition\"\"; \"\"Threads synchronization with an event\"\"; \"\"Using the with statement\"\"; \"\"Thread communication using a queue\"\"; \"\"Evaluating the performance of multithread applications\"\""]
[{"$nulls":4},"\"\"Chapter 3: Process-based Parallelism\"\"\"\"Introduction\"\"; \"\"How to spawn a process\"\"; \"\"How to name a process\"\"; \"\"How to run a process in the background\"\"; \"\"How to kill a process\"\"; \"\"How to use process in a subclass\"\"; \"\"How to exchange objects between processes\"\"; \"\"How to synchronize processes\"\"; \"\"How to manage a state between processes\"\"; \"\"How to use a process pool\"\"; \"\"Using the mpi4py Python module\"\"; "]
[{"$nulls":4},"\"\"Point-to-point communication\"\"; \"\"Avoiding deadlock problems\"\"; \"\"Collective communication using broadcast\"\"; \"\"Collective communication using scatter\"\""]
[{"$nulls":4},"\"\"Collective communication using gather\"\"\"\"Collective communication using Alltoall\"\"; \"\"The reduction operation\"\"; \"\"How to optimize the communication\"\"; \"\"Chapter 4: Asynchronous Programming\"\"; \"\"Introduction\"\"; \"\"Using the concurrent.futures Python modules\"\"; \"\"Event loop management with Asyncio\"\"; \"\"Handling coroutines with Asyncio\"\"; \"\"Task manipulation with Asyncio\"\"; \"\"Dealing with Asyncio and Futures\"\"; \"\"Chapter 5: Distributed Python\"\"; \"\"Introduction\"\"; \"\"Using Celery to distribute tasks\"\"; \"\"How to create a task with Celery\"\"; \"\"Scientific computing with SCOOP\"\""]
[{"$nulls":4},"\"\"Handling map functions with SCOOP\"\"\"\"Remote Method Invocation with Pyro4\"\"; \"\"Chaining objects with Pyro4\"\"; \"\"Developing a client-server application with Pyro4\"\"; \"\"Communicating sequential processes with PyCSP\"\"; \"\"Using MapReduce with Disco\"\"; \"\"A remote procedure call with RPyC\"\"; \"\"Chapter 6: GPU Programming  with Python\"\"; \"\"Introduction\"\"; \"\"Using the PyCUDA module\"\"; \"\"How to build a PyCUDA application\"\"; \"\"Understanding the PyCuda memory model with matrix manipulation\"\"; \"\"Kernel invocations with GPUArray\"\"; \"\"Evaluating element-wise expressions with PyCUDA\"\""]
[{"$nulls":4},"\"\"The MapReduce operation with PyCuda\"\""]
[null,null,null,"Sommario/riassunto","Master efficient parallel programming to build powerful applications using Python About This Book Design and implement efficient parallel software Master new programming techniques to address and solve complex programming problems Explore the world of parallel programming with this book, which is a go-to resource for different kinds of parallel computing tasks in Python, using examples and topics covered in great depth Who This Book Is For Python Parallel Programming Cookbook is intended for software developers who are well versed with Python and want to use parallel programming techniques to write powerful and efficient code. This book will help you master the basics and the advanced of parallel computing. What You Will Learn Synchronize multiple threads and processes to manage parallel tasks Implement message passing communication between processes to build parallel applications Program your own GPU cards to address complex problems Manage computing entities to execute distributed computational tasks Write efficient programs by adopting the event-driven programming model Explore the cloud technology with DJango and Google App Engine Apply parallel programming techniques that can lead to performance improvements In Detail Parallel programming techniques are required for a developer to get the best use of all the computational resources available today and to build efficient software systems. From multi-core to GPU systems up to the distributed architectures, the high computation of programs throughout requires the use of programming tools and software libraries. Because of this, it is becoming increasingly important to know what the parallel programming techniques are. Python is commonly used as even non-experts can easily deal with its concepts. This book will teach you parallel programming techniques using examples in Python and will help you explore the many ways in which you can write code that allows more than one process to happen at once. Starting with introducing you to the world of parallel computing, it moves on to cover the fundamentals in Python. This is followed by exploring the thread-based parallelism model using the Python threading module by synchronizing threads and using locks, mutex, semaphores queues, GIL, and the thread pool. Next you will be taught about process-based parallelism where you will synchronize processes using message "]
[{"$nulls":4},"passing along with learning about the performance of MPI Python Modules. You will then go o..."]