{"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":28,"n_cols":5,"rows_kept":28,"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],[7,2,7,3],[8,2,8,3],[9,2,9,3],[10,2,10,3],[11,2,11,3],[15,2,15,3],[16,2,16,3],[20,2,20,3]],"flags":["formulas_cached_only"]}
[null,"1.","Record Nr.",null,"UNINA9910819381503321"]
[null,null,"Autore",null,"Oshana Robert"]
[null,null,"Titolo",null,"Multicore software development techniques : applications, tips, and tricks / / Rob Oshana"]
[null,null,"Pubbl/distr/stampa",null,"Amsterdam : , : Elsevier : , : Newnes, , [2016]"]
[{"$nulls":4},"©2016"]
[null,null,"ISBN",null,"0-12-800958-6"]
[{"$nulls":4},"0-12-801037-1"]
[null,null,"Edizione",null,"[1st edition]"]
[null,null,"Descrizione fisica",null,"1 online resource (233 p.)"]
[null,null,"Collana",null,"Newnes Pocket Bks."]
[null,null,"Disciplina",null,"005.2/75"]
[null,null,"Soggetti",null,"Parallel programming (Computer science)"]
[{"$nulls":4},"Multiprocessors"]
[{"$nulls":4},"Computer software - Development"]
[{"$nulls":4},"Systems on a chip"]
[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","Description based upon print version of record."]
[null,null,null,"Nota di bibliografia","Includes bibliographical references and index."]
[null,null,"Nota di contenuto",null,"Front Cover; Multicore Software Development Techniques; Copyright Page; Dedication; Contents; 1 Principles of Parallel Computing; 1.1 Concurrency versus Parallelism; 1.2 Symmetric and Asymmetric Multiprocessing; 1.2.1 Symmetric Multiprocessing; 1.2.2 Asymmetric Multiprocessing; 1.3 Parallelism Saves Power; 1.3.1 Limit: \"Hidden Parallelism\" Gains are Slowing Down; 1.3.2 Another Limit: Chip Yield and Process Technologies; 1.3.3 Another Limit: Basic Laws of Physics and the Speed of Light; 1.4 Key Challenges of Parallel Computing; 1.4.1 Finding Enough Parallelism; 1.4.2 Data Dependencies"]
[{"$nulls":4},"1.4.3 Achieving the Right Level of Granularity1.4.4 Locality and Parallelism; 1.4.5 Load Imbalance; 1.4.6 Speedup; 1.4.7 Directed Graphs; 2 Parallelism in All of Its Forms; 2.1 Bit-Level Parallelism; 2.2 Instruction-Level Parallelism (ILP); 2.3 Simultaneous Multithreading; 2.4 Single Instruction, Multiple Data (SIMD); 2.5 Data Parallelism; 2.6 Task Parallelism; 2.7 Acceleration and Offload Engines; 3 Multicore System Architectures; 3.1 Shared Memory Multicore Systems; 3.2 Cache Coherency; 3.3 Shared Data Synchronization; 3.4 Distributed Memory; 3.5 Symmetric Multiprocessing"]
[{"$nulls":4},"3.6 Asymmetric Multiprocessing3.7 Hybrid Approaches; 3.8 Speaking of Cores; 3.9 Graphical Processing Units (GPU); 3.10 Putting It All Together; 4 Multicore Software Architectures; 4.1 Multicore Software "]
[{"$nulls":4},"Architectures; 4.1.1 Master/Worker; 4.1.2 Peer; 4.1.3 Pipelined; 4.2 A Decision Tree Approach to Selecting a Multicore Architecture; 4.2.1 Decision 1: Select the Programming Model; 4.2.2 Decision 2: Choose the Operating System Framework; 4.2.3 Decision 3: Determine the Control Plane and Data Plane Model"]
[{"$nulls":4},"4.2.4 Decisions 4 and 5: Choose the Type of Operating System Needed for the Control Plane and Data Plane4.2.5 Decision 6: Determine the Type of Acceleration Needed; 5 Multicore Software Development Process; 5.1 Multicore Programming Models; 6 Putting it All Together, A Case Study of Multicore Development; 6.1 Multiple-Single-Cores; 6.2 Cooperating-Multiple-Cores; 6.3 Getting Started; 6.3.1 JPEG Encoding Application; 6.4 System Requirements; 6.4.1 Intercore Communication; 6.4.2 Master-and-Slaves Implementation; 7 Multicore Virtualization; 7.1 Hypervisor Classifications"]
[{"$nulls":4},"7.2 Virtualization Use Cases for Multicore7.3 Linux Hypervisors; 7.4 Virtual Networking in Multicore; 7.5 I/O Activity in a Virtualized Environment; 7.6 Direct Device Assignment; 8 Performance and Optimization of Multicore Systems; 8.1 Select the Right \"Core\" for Your Multicore; 8.2 Improve Serial Performance before Migrating to Multicore (Especially ILP); 8.3 Achieve Proper Load Balancing (SMP Linux) and Scheduling; 8.4 Improve Data Locality; 8.5 Reduce or Eliminate False Sharing; 8.6 Use Affinity Scheduling When Necessary; 8.7 Apply the Proper Lock Granularity and Frequency"]
[{"$nulls":4},"8.8 Remove Sync Barriers Where Possible"]
[null,null,null,"Sommario/riassunto","This book provides a set of practical processes and techniques used for multicore software development.  It is written with a focus on solving day to day problems using practical tips and tricks and industry case studies to reinforce the key concepts in multicore software development.  Coverage includes: The multicore landscape Principles of parallel computing Multicore SoC architectures Multicore programming models The Multicore development process Multicore programming with threads Concurrency abstraction layers Debugging Multicore Systems Practical techniques for getting started in multicore development Case Studies in Multicore Systems Development Sample code to reinforce many of the concepts discussed Presents the ‘nuts and bolts’ of programming a multicore system Provides a short-format book on the practical processes and techniques used in multicore software development Covers practical tips, tricks and industry case studies to enhance the learning process"]