Programming Massively Parallel Processors

Download Programming Massively Parallel Processors PDF Online Free

Author :
Publisher : Newnes
ISBN 13 : 0123914183
Total Pages : 519 pages
Book Rating : 4.1/5 (239 download)

DOWNLOAD NOW!


Book Synopsis Programming Massively Parallel Processors by : David B. Kirk

Download or read book Programming Massively Parallel Processors written by David B. Kirk and published by Newnes. This book was released on 2012-12-31 with total page 519 pages. Available in PDF, EPUB and Kindle. Book excerpt: Programming Massively Parallel Processors: A Hands-on Approach, Second Edition, teaches students how to program massively parallel processors. It offers a detailed discussion of various techniques for constructing parallel programs. Case studies are used to demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. This guide shows both student and professional alike the basic concepts of parallel programming and GPU architecture. Topics of performance, floating-point format, parallel patterns, and dynamic parallelism are covered in depth. This revised edition contains more parallel programming examples, commonly-used libraries such as Thrust, and explanations of the latest tools. It also provides new coverage of CUDA 5.0, improved performance, enhanced development tools, increased hardware support, and more; increased coverage of related technology, OpenCL and new material on algorithm patterns, GPU clusters, host programming, and data parallelism; and two new case studies (on MRI reconstruction and molecular visualization) that explore the latest applications of CUDA and GPUs for scientific research and high-performance computing. This book should be a valuable resource for advanced students, software engineers, programmers, and hardware engineers. - New coverage of CUDA 5.0, improved performance, enhanced development tools, increased hardware support, and more - Increased coverage of related technology, OpenCL and new material on algorithm patterns, GPU clusters, host programming, and data parallelism - Two new case studies (on MRI reconstruction and molecular visualization) explore the latest applications of CUDA and GPUs for scientific research and high-performance computing

Using OpenCL

Download Using OpenCL PDF Online Free

Author :
Publisher : IOS Press
ISBN 13 : 1614990298
Total Pages : 312 pages
Book Rating : 4.6/5 (149 download)

DOWNLOAD NOW!


Book Synopsis Using OpenCL by : Janusz Kowalik

Download or read book Using OpenCL written by Janusz Kowalik and published by IOS Press. This book was released on 2012 with total page 312 pages. Available in PDF, EPUB and Kindle. Book excerpt:

Programming Massively Parallel Processors

Download Programming Massively Parallel Processors PDF Online Free

Author :
Publisher : Morgan Kaufmann
ISBN 13 : 012811987X
Total Pages : 574 pages
Book Rating : 4.1/5 (281 download)

DOWNLOAD NOW!


Book Synopsis Programming Massively Parallel Processors by : David B. Kirk

Download or read book Programming Massively Parallel Processors written by David B. Kirk and published by Morgan Kaufmann. This book was released on 2016-11-24 with total page 574 pages. Available in PDF, EPUB and Kindle. Book excerpt: Programming Massively Parallel Processors: A Hands-on Approach, Third Edition shows both student and professional alike the basic concepts of parallel programming and GPU architecture, exploring, in detail, various techniques for constructing parallel programs. Case studies demonstrate the development process, detailing computational thinking and ending with effective and efficient parallel programs. Topics of performance, floating-point format, parallel patterns, and dynamic parallelism are covered in-depth. For this new edition, the authors have updated their coverage of CUDA, including coverage of newer libraries, such as CuDNN, moved content that has become less important to appendices, added two new chapters on parallel patterns, and updated case studies to reflect current industry practices. - Teaches computational thinking and problem-solving techniques that facilitate high-performance parallel computing - Utilizes CUDA version 7.5, NVIDIA's software development tool created specifically for massively parallel environments - Contains new and updated case studies - Includes coverage of newer libraries, such as CuDNN for Deep Learning

Parallel Computer Architecture

Download Parallel Computer Architecture PDF Online Free

Author :
Publisher : Gulf Professional Publishing
ISBN 13 : 1558603433
Total Pages : 1056 pages
Book Rating : 4.5/5 (586 download)

DOWNLOAD NOW!


Book Synopsis Parallel Computer Architecture by : David Culler

Download or read book Parallel Computer Architecture written by David Culler and published by Gulf Professional Publishing. This book was released on 1999 with total page 1056 pages. Available in PDF, EPUB and Kindle. Book excerpt: This book outlines a set of issues that are critical to all of parallel architecture--communication latency, communication bandwidth, and coordination of cooperative work (across modern designs). It describes the set of techniques available in hardware and in software to address each issues and explore how the various techniques interact.

Massively Parallel Processing Applications and Development

Download Massively Parallel Processing Applications and Development PDF Online Free

Author :
Publisher : Elsevier
ISBN 13 : 1483290433
Total Pages : 996 pages
Book Rating : 4.4/5 (832 download)

DOWNLOAD NOW!


Book Synopsis Massively Parallel Processing Applications and Development by : L. Dekker

Download or read book Massively Parallel Processing Applications and Development written by L. Dekker and published by Elsevier. This book was released on 2013-10-22 with total page 996 pages. Available in PDF, EPUB and Kindle. Book excerpt: The contributions of a diverse selection of international hardware and software specialists are assimilated in this book's exploration of the development of massively parallel processing (MPP). The emphasis is placed on industrial applications and collaboration with users and suppliers from within the industrial community consolidates the scope of the publication. From a practical point of view, massively parallel data processing is a vital step to further innovation in all areas where large amounts of data must be processed in parallel or in a distributed manner, e.g. fluid dynamics, meteorology, seismics, molecular engineering, image processing, parallel data base processing. MPP technology can make the speed of computation higher and substantially reduce the computational costs. However, to achieve these features, the MPP software has to be developed further to create user-friendly programming systems and to become transparent for present-day computer software. Application of novel electro-optic components and devices is continuing and will be a key for much more general and powerful architectures. Vanishing of communication hardware limitations will result in the elimination of programming bottlenecks in parallel data processing. Standardization of the functional characteristics of a programming model of massively parallel computers will become established. Then efficient programming environments can be developed. The result will be a widespread use of massively parallel processing systems in many areas of application.

Analog VLSI Integration of Massive Parallel Signal Processing Systems

Download Analog VLSI Integration of Massive Parallel Signal Processing Systems PDF Online Free

Author :
Publisher : Springer Science & Business Media
ISBN 13 : 1475725809
Total Pages : 235 pages
Book Rating : 4.4/5 (757 download)

DOWNLOAD NOW!


Book Synopsis Analog VLSI Integration of Massive Parallel Signal Processing Systems by : Peter Kinget

Download or read book Analog VLSI Integration of Massive Parallel Signal Processing Systems written by Peter Kinget and published by Springer Science & Business Media. This book was released on 2013-06-29 with total page 235 pages. Available in PDF, EPUB and Kindle. Book excerpt: When comparing conventional computing architectures to the architectures of biological neural systems, we find several striking differences. Conventional computers use a low number of high performance computing elements that are programmed with algorithms to perform tasks in a time sequenced way; they are very successful in administrative applications, in scientific simulations, and in certain signal processing applications. However, the biological systems still significantly outperform conventional computers in perception tasks, sensory data processing and motory control. Biological systems use a completely dif ferent computing paradigm: a massive network of simple processors that are (adaptively) interconnected and operate in parallel. Exactly this massively parallel processing seems the key aspect to their success. On the other hand the development of VLSI technologies provide us with technological means to implement very complicated systems on a silicon die. Especially analog VLSI circuits in standard digital technologies open the way for the implement at ion of massively parallel analog signal processing systems for sensory signal processing applications and for perception tasks. In chapter 1 the motivations behind the emergence of the analog VLSI of massively parallel systems is discussed in detail together with the capabilities and !imitations of VLSI technologies and the required research and developments. Analog parallel signal processing drives for the development of very com pact, high speed and low power circuits. An important technologicallimitation in the reduction of the size of circuits and the improvement of the speed and power consumption performance is the device inaccuracies or device mismatch.

Structured Parallel Programming

Download Structured Parallel Programming PDF Online Free

Author :
Publisher : Elsevier
ISBN 13 : 0124159931
Total Pages : 434 pages
Book Rating : 4.1/5 (241 download)

DOWNLOAD NOW!


Book Synopsis Structured Parallel Programming by : Michael McCool

Download or read book Structured Parallel Programming written by Michael McCool and published by Elsevier. This book was released on 2012-06-25 with total page 434 pages. Available in PDF, EPUB and Kindle. Book excerpt: Programming is now parallel programming. Much as structured programming revolutionized traditional serial programming decades ago, a new kind of structured programming, based on patterns, is relevant to parallel programming today. Parallel computing experts and industry insiders Michael McCool, Arch Robison, and James Reinders describe how to design and implement maintainable and efficient parallel algorithms using a pattern-based approach. They present both theory and practice, and give detailed concrete examples using multiple programming models. Examples are primarily given using two of the most popular and cutting edge programming models for parallel programming: Threading Building Blocks, and Cilk Plus. These architecture-independent models enable easy integration into existing applications, preserve investments in existing code, and speed the development of parallel applications. Examples from realistic contexts illustrate patterns and themes in parallel algorithm design that are widely applicable regardless of implementation technology. The patterns-based approach offers structure and insight that developers can apply to a variety of parallel programming models Develops a composable, structured, scalable, and machine-independent approach to parallel computing Includes detailed examples in both Cilk Plus and the latest Threading Building Blocks, which support a wide variety of computers

Programming Massively Parallel Processors

Download Programming Massively Parallel Processors PDF Online Free

Author :
Publisher : Createspace Independent Publishing Platform
ISBN 13 : 9781548845155
Total Pages : 142 pages
Book Rating : 4.8/5 (451 download)

DOWNLOAD NOW!


Book Synopsis Programming Massively Parallel Processors by : David B. Kirk

Download or read book Programming Massively Parallel Processors written by David B. Kirk and published by Createspace Independent Publishing Platform. This book was released on 2017-07-14 with total page 142 pages. Available in PDF, EPUB and Kindle. Book excerpt: GPUs can be used for much more than graphics processing. As opposed to a CPU, which can only run four or five threads at once, a GPU is made up of hundreds or even thousands of individual, low-powered cores, allowing it to perform thousands of concurrent operations. Because of this, GPUs can tackle large, complex problems on a much shorter time scale than CPUs. Dive into parallel programming on NVIDIA hardware with CUDA by Chris Rose, and learn the basics of unlocking your graphics card. This updated and expanded second edition of Book provides a user-friendly introduction to the subject, Taking a clear structural framework, it guides the reader through the subject's core elements. A flowing writing style combines with the use of illustrations and diagrams throughout the text to ensure the reader understands even the most complex of concepts. This succinct and enlightening overview is a required reading for all those interested in the subject . We hope you find this book useful in shaping your future career & Business.

Programming Models for Parallel Computing

Download Programming Models for Parallel Computing PDF Online Free

Author :
Publisher : MIT Press
ISBN 13 : 0262528819
Total Pages : 488 pages
Book Rating : 4.2/5 (625 download)

DOWNLOAD NOW!


Book Synopsis Programming Models for Parallel Computing by : Pavan Balaji

Download or read book Programming Models for Parallel Computing written by Pavan Balaji and published by MIT Press. This book was released on 2015-11-06 with total page 488 pages. Available in PDF, EPUB and Kindle. Book excerpt: An overview of the most prominent contemporary parallel processing programming models, written in a unique tutorial style. With the coming of the parallel computing era, computer scientists have turned their attention to designing programming models that are suited for high-performance parallel computing and supercomputing systems. Programming parallel systems is complicated by the fact that multiple processing units are simultaneously computing and moving data. This book offers an overview of some of the most prominent parallel programming models used in high-performance computing and supercomputing systems today. The chapters describe the programming models in a unique tutorial style rather than using the formal approach taken in the research literature. The aim is to cover a wide range of parallel programming models, enabling the reader to understand what each has to offer. The book begins with a description of the Message Passing Interface (MPI), the most common parallel programming model for distributed memory computing. It goes on to cover one-sided communication models, ranging from low-level runtime libraries (GASNet, OpenSHMEM) to high-level programming models (UPC, GA, Chapel); task-oriented programming models (Charm++, ADLB, Scioto, Swift, CnC) that allow users to describe their computation and data units as tasks so that the runtime system can manage computation and data movement as necessary; and parallel programming models intended for on-node parallelism in the context of multicore architecture or attached accelerators (OpenMP, Cilk Plus, TBB, CUDA, OpenCL). The book will be a valuable resource for graduate students, researchers, and any scientist who works with data sets and large computations. Contributors Timothy Armstrong, Michael G. Burke, Ralph Butler, Bradford L. Chamberlain, Sunita Chandrasekaran, Barbara Chapman, Jeff Daily, James Dinan, Deepak Eachempati, Ian T. Foster, William D. Gropp, Paul Hargrove, Wen-mei Hwu, Nikhil Jain, Laxmikant Kale, David Kirk, Kath Knobe, Ariram Krishnamoorthy, Jeffery A. Kuehn, Alexey Kukanov, Charles E. Leiserson, Jonathan Lifflander, Ewing Lusk, Tim Mattson, Bruce Palmer, Steven C. Pieper, Stephen W. Poole, Arch D. Robison, Frank Schlimbach, Rajeev Thakur, Abhinav Vishnu, Justin M. Wozniak, Michael Wilde, Kathy Yelick, Yili Zheng

Parallel Programming with MPI

Download Parallel Programming with MPI PDF Online Free

Author :
Publisher : Morgan Kaufmann
ISBN 13 : 9781558603394
Total Pages : 456 pages
Book Rating : 4.6/5 (33 download)

DOWNLOAD NOW!


Book Synopsis Parallel Programming with MPI by : Peter Pacheco

Download or read book Parallel Programming with MPI written by Peter Pacheco and published by Morgan Kaufmann. This book was released on 1997 with total page 456 pages. Available in PDF, EPUB and Kindle. Book excerpt: Mathematics of Computing -- Parallelism.

Introduction to Parallel Programming

Download Introduction to Parallel Programming PDF Online Free

Author :
Publisher : Cambridge University Press
ISBN 13 : 1009276301
Total Pages : pages
Book Rating : 4.0/5 (92 download)

DOWNLOAD NOW!


Book Synopsis Introduction to Parallel Programming by : Subodh Kumar

Download or read book Introduction to Parallel Programming written by Subodh Kumar and published by Cambridge University Press. This book was released on 2022-07-31 with total page pages. Available in PDF, EPUB and Kindle. Book excerpt: In modern computer science, there exists no truly sequential computing system; and most advanced programming is parallel programming. This is particularly evident in modern application domains like scientific computation, data science, machine intelligence, etc. This lucid introductory textbook will be invaluable to students of computer science and technology, acting as a self-contained primer to parallel programming. It takes the reader from introduction to expertise, addressing a broad gamut of issues. It covers different parallel programming styles, describes parallel architecture, includes parallel programming frameworks and techniques, presents algorithmic and analysis techniques and discusses parallel design and performance issues. With its broad coverage, the book can be useful in a wide range of courses; and can also prove useful as a ready reckoner for professionals in the field.

Handbook of Parallel Computing and Statistics

Download Handbook of Parallel Computing and Statistics PDF Online Free

Author :
Publisher : CRC Press
ISBN 13 : 9781420028683
Total Pages : 560 pages
Book Rating : 4.0/5 (286 download)

DOWNLOAD NOW!


Book Synopsis Handbook of Parallel Computing and Statistics by : Erricos John Kontoghiorghes

Download or read book Handbook of Parallel Computing and Statistics written by Erricos John Kontoghiorghes and published by CRC Press. This book was released on 2005-12-21 with total page 560 pages. Available in PDF, EPUB and Kindle. Book excerpt: Technological improvements continue to push back the frontier of processor speed in modern computers. Unfortunately, the computational intensity demanded by modern research problems grows even faster. Parallel computing has emerged as the most successful bridge to this computational gap, and many popular solutions have emerged based on its concepts

The Massively Parallel Processor

Download The Massively Parallel Processor PDF Online Free

Author :
Publisher : MIT Press (MA)
ISBN 13 : 9780262661799
Total Pages : 304 pages
Book Rating : 4.6/5 (617 download)

DOWNLOAD NOW!


Book Synopsis The Massively Parallel Processor by : Jerry L. Potter

Download or read book The Massively Parallel Processor written by Jerry L. Potter and published by MIT Press (MA). This book was released on 1985-06-01 with total page 304 pages. Available in PDF, EPUB and Kindle. Book excerpt: This collection of articles documents the design of one such computer, a single instruction multiple data stream (SIMD) class supercomputer with 16,834 processing units capable of over 6 billion 8 bit operations per second.

Parallel Computing Works!

Download Parallel Computing Works! PDF Online Free

Author :
Publisher : Elsevier
ISBN 13 : 0080513514
Total Pages : 1012 pages
Book Rating : 4.0/5 (85 download)

DOWNLOAD NOW!


Book Synopsis Parallel Computing Works! by : Geoffrey C. Fox

Download or read book Parallel Computing Works! written by Geoffrey C. Fox and published by Elsevier. This book was released on 2014-06-28 with total page 1012 pages. Available in PDF, EPUB and Kindle. Book excerpt: A clear illustration of how parallel computers can be successfully appliedto large-scale scientific computations. This book demonstrates how avariety of applications in physics, biology, mathematics and other scienceswere implemented on real parallel computers to produce new scientificresults. It investigates issues of fine-grained parallelism relevant forfuture supercomputers with particular emphasis on hypercube architecture. The authors describe how they used an experimental approach to configuredifferent massively parallel machines, design and implement basic systemsoftware, and develop algorithms for frequently used mathematicalcomputations. They also devise performance models, measure the performancecharacteristics of several computers, and create a high-performancecomputing facility based exclusively on parallel computers. By addressingall issues involved in scientific problem solving, Parallel ComputingWorks! provides valuable insight into computational science for large-scaleparallel architectures. For those in the sciences, the findings reveal theusefulness of an important experimental tool. Anyone in supercomputing andrelated computational fields will gain a new perspective on the potentialcontributions of parallelism. Includes over 30 full-color illustrations.

Introduction to Parallel Processing

Download Introduction to Parallel Processing PDF Online Free

Author :
Publisher : Springer Science & Business Media
ISBN 13 : 0306469642
Total Pages : 512 pages
Book Rating : 4.3/5 (64 download)

DOWNLOAD NOW!


Book Synopsis Introduction to Parallel Processing by : Behrooz Parhami

Download or read book Introduction to Parallel Processing written by Behrooz Parhami and published by Springer Science & Business Media. This book was released on 2006-04-11 with total page 512 pages. Available in PDF, EPUB and Kindle. Book excerpt: THE CONTEXT OF PARALLEL PROCESSING The field of digital computer architecture has grown explosively in the past two decades. Through a steady stream of experimental research, tool-building efforts, and theoretical studies, the design of an instruction-set architecture, once considered an art, has been transformed into one of the most quantitative branches of computer technology. At the same time, better understanding of various forms of concurrency, from standard pipelining to massive parallelism, and invention of architectural structures to support a reasonably efficient and user-friendly programming model for such systems, has allowed hardware performance to continue its exponential growth. This trend is expected to continue in the near future. This explosive growth, linked with the expectation that performance will continue its exponential rise with each new generation of hardware and that (in stark contrast to software) computer hardware will function correctly as soon as it comes off the assembly line, has its down side. It has led to unprecedented hardware complexity and almost intolerable dev- opment costs. The challenge facing current and future computer designers is to institute simplicity where we now have complexity; to use fundamental theories being developed in this area to gain performance and ease-of-use benefits from simpler circuits; to understand the interplay between technological capabilities and limitations, on the one hand, and design decisions based on user and application requirements on the other.

Parallel and High Performance Computing

Download Parallel and High Performance Computing PDF Online Free

Author :
Publisher : Simon and Schuster
ISBN 13 : 1638350388
Total Pages : 702 pages
Book Rating : 4.6/5 (383 download)

DOWNLOAD NOW!


Book Synopsis Parallel and High Performance Computing by : Robert Robey

Download or read book Parallel and High Performance Computing written by Robert Robey and published by Simon and Schuster. This book was released on 2021-08-24 with total page 702 pages. Available in PDF, EPUB and Kindle. Book excerpt: Parallel and High Performance Computing offers techniques guaranteed to boost your code’s effectiveness. Summary Complex calculations, like training deep learning models or running large-scale simulations, can take an extremely long time. Efficient parallel programming can save hours—or even days—of computing time. Parallel and High Performance Computing shows you how to deliver faster run-times, greater scalability, and increased energy efficiency to your programs by mastering parallel techniques for multicore processor and GPU hardware. About the technology Write fast, powerful, energy efficient programs that scale to tackle huge volumes of data. Using parallel programming, your code spreads data processing tasks across multiple CPUs for radically better performance. With a little help, you can create software that maximizes both speed and efficiency. About the book Parallel and High Performance Computing offers techniques guaranteed to boost your code’s effectiveness. You’ll learn to evaluate hardware architectures and work with industry standard tools such as OpenMP and MPI. You’ll master the data structures and algorithms best suited for high performance computing and learn techniques that save energy on handheld devices. You’ll even run a massive tsunami simulation across a bank of GPUs. What's inside Planning a new parallel project Understanding differences in CPU and GPU architecture Addressing underperforming kernels and loops Managing applications with batch scheduling About the reader For experienced programmers proficient with a high-performance computing language like C, C++, or Fortran. About the author Robert Robey works at Los Alamos National Laboratory and has been active in the field of parallel computing for over 30 years. Yuliana Zamora is currently a PhD student and Siebel Scholar at the University of Chicago, and has lectured on programming modern hardware at numerous national conferences. Table of Contents PART 1 INTRODUCTION TO PARALLEL COMPUTING 1 Why parallel computing? 2 Planning for parallelization 3 Performance limits and profiling 4 Data design and performance models 5 Parallel algorithms and patterns PART 2 CPU: THE PARALLEL WORKHORSE 6 Vectorization: FLOPs for free 7 OpenMP that performs 8 MPI: The parallel backbone PART 3 GPUS: BUILT TO ACCELERATE 9 GPU architectures and concepts 10 GPU programming model 11 Directive-based GPU programming 12 GPU languages: Getting down to basics 13 GPU profiling and tools PART 4 HIGH PERFORMANCE COMPUTING ECOSYSTEMS 14 Affinity: Truce with the kernel 15 Batch schedulers: Bringing order to chaos 16 File operations for a parallel world 17 Tools and resources for better code

Parallel Computing Architectures and APIs

Download Parallel Computing Architectures and APIs PDF Online Free

Author :
Publisher : CRC Press
ISBN 13 : 1351029215
Total Pages : 407 pages
Book Rating : 4.3/5 (51 download)

DOWNLOAD NOW!


Book Synopsis Parallel Computing Architectures and APIs by : Vivek Kale

Download or read book Parallel Computing Architectures and APIs written by Vivek Kale and published by CRC Press. This book was released on 2019-12-06 with total page 407 pages. Available in PDF, EPUB and Kindle. Book excerpt: Parallel Computing Architectures and APIs: IoT Big Data Stream Processing commences from the point high-performance uniprocessors were becoming increasingly complex, expensive, and power-hungry. A basic trade-off exists between the use of one or a small number of such complex processors, at one extreme, and a moderate to very large number of simpler processors, at the other. When combined with a high-bandwidth, interprocessor communication facility leads to significant simplification of the design process. However, two major roadblocks prevent the widespread adoption of such moderately to massively parallel architectures: the interprocessor communication bottleneck, and the difficulty and high cost of algorithm/software development. One of the most important reasons for studying parallel computing architectures is to learn how to extract the best performance from parallel systems. Specifically, you must understand its architectures so that you will be able to exploit those architectures during programming via the standardized APIs. This book would be useful for analysts, designers and developers of high-throughput computing systems essential for big data stream processing emanating from IoT-driven cyber-physical systems (CPS). This pragmatic book: Devolves uniprocessors in terms of a ladder of abstractions to ascertain (say) performance characteristics at a particular level of abstraction Explains limitations of uniprocessor high performance because of Moore’s Law Introduces basics of processors, networks and distributed systems Explains characteristics of parallel systems, parallel computing models and parallel algorithms Explains the three primary categorical representatives of parallel computing architectures, namely, shared memory, message passing and stream processing Introduces the three primary categorical representatives of parallel programming APIs, namely, OpenMP, MPI and CUDA Provides an overview of Internet of Things (IoT), wireless sensor networks (WSN), sensor data processing, Big Data and stream processing Provides introduction to 5G communications, Edge and Fog computing Parallel Computing Architectures and APIs: IoT Big Data Stream Processing discusses stream processing that enables the gathering, processing and analysis of high-volume, heterogeneous, continuous Internet of Things (IoT) big data streams, to extract insights and actionable results in real time. Application domains requiring data stream management include military, homeland security, sensor networks, financial applications, network management, web site performance tracking, real-time credit card fraud detection, etc.