Your cart is empty
Revised and updated with improvements conceived in parallel
programming courses, "The Art of Multiprocessor Programming" is an
authoritative guide to multicore programming. It introduces a
higher level set of software development skills than that needed
for efficient single-core programming. This book provides
comprehensive coverage of the new principles, algorithms, and tools
necessary for effective multiprocessor programming. Students and
professionals alike will benefit from thorough coverage of key
multiprocessor programming issues.
API Design for C++ provides a comprehensive discussion of Application Programming Interface (API) development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online. This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators.
If you need to learn CUDA but don't have experience with
parallel computing, "CUDA Programming: A Developer's Introduction
"offers a detailed guide to CUDA with a grounding in parallel
fundamentals. It starts by introducing CUDA and bringing you up to
speed on GPU parallelism and hardware, then delving into CUDA
installation. Chapters on core concepts including threads, blocks,
grids, and memory focus on both parallel and CUDA-specific issues.
Later, the book demonstrates CUDA in practice for optimizing
applications, adjusting to new hardware, and solving common
Author Peter Pacheco uses a tutorial approach to show students
how to develop effective parallel programs with MPI, Pthreads, and
OpenMP. The first undergraduate text to directly address compiling
and running parallel programs on the new multi-core and cluster
architecture, " An Introduction to Parallel Programming" explains
how to design, debug, and evaluate the performance of distributed
and shared-memory programs. User-friendly exercises teach students
how to compile, run and modify example programs.
This entirely revised second edition of "Engineering a Compiler"
is full of technical updates and new material covering the latest
developments in compiler technology. In this comprehensive text you
will learn important techniques for constructing a modern compiler.
Leading educators and researchers Keith Cooper and Linda Torczon
combine basic principles with pragmatic insights from their
experience building state-of-the-art compilers. They will help you
fully understand important techniques such as compilation of
imperative and object-oriented languages, construction of static
single assignment forms, instruction scheduling, and graph-coloring
Computation and Storage in the Cloud is the first comprehensive
and systematic work investigating the issue of computation and
storage trade-off in the cloud in order to reduce the overall
application cost. Scientific applications are usually computation
and data intensive, where complex computation tasks take a long
time for execution and the generated datasets are often terabytes
or petabytes in size. Storing valuable generated application
datasets can save their regeneration cost when they are reused, not
to mention the waiting time caused by regeneration. However, the
large size of the scientific datasets is a big challenge for their
storage. By proposing innovative concepts, theorems and algorithms,
this book will help bring the cost down dramatically for both cloud
users and service providers to run computation and data intensive
scientific applications in the cloud. Covers cost models and
benchmarking that explain the necessary tradeoffs for both cloud
providers and usersDescribes several novel strategies for storing
application datasets in the cloudIncludes real-world case studies
of scientific research applications
Describes several novel strategies for storing application datasets in the cloud
Includes real-world case studies of scientific research applications
Semantic Web models and technologies provide information in machine-readable languages that enable computers to access the Web more intelligently and perform tasks automatically without the direction of users. These technologies are relatively recent and advancing rapidly, creating a set of unique challenges for those developing applications.
"Semantic Web for the Working Ontologist" is the essential, comprehensive resource on semantic modeling, for practitioners in health care, artificial intelligence, finance, engineering, military intelligence, enterprise architecture, and more. Focused on developing useful and reusable models, this market-leading book explains how to build semantic content (ontologies) and how to build applications that access that content.
New in this edition:
Coverage of the latest Semantic Web tools for organizing, querying, and processing information - see details in TOC below
Detailed information on the latest ontologies used in key web
applications including ecommerce, social networking, data mining,
using government data, and more
Authors Jim Jeffers and James Reinders spent two years helping educate customers about the prototype and pre-production hardware before Intel introduced the first Intel Xeon Phi coprocessor. They have distilled their own experiences coupled with insights from many expert customers, Intel Field Engineers, Application Engineers and Technical Consulting Engineers, to create this authoritative first book on the essentials of programming for this new architecture and these new products. This book is useful even before you ever touch a system with an Intel Xeon Phi coprocessor. To ensure that your applications run at maximum efficiency, the authors emphasize key techniques for programming any modern parallel computing system whether based on Intel Xeon processors, Intel Xeon Phi coprocessors, or other high performance microprocessors. Applying these techniques will generally increase your program performance on any system, and better prepare you for Intel Xeon Phi coprocessors and the Intel MIC architecture. It offers a practical guide to the essentials of the Intel Xeon Phi coprocessor. It presents best practices for portable, high-performance computing and a familiar and proven threaded, scalar-vector programming model. It includes simple but informative code examples that explain the unique aspects of this new highly parallel and high performance computational product. It covers wide vectors, many cores, many threads and high bandwidth cache/memory architecture.
Real-Time Systems Development introduces computing students and professional programmers to the development of software for real-time applications. Based on the academic and commercial experience of the author, the book is an ideal companion to final year undergraduate options or MSc modules in the area of real-time systems design and implementation. Assuming a certain level of general systems design and programming experience, this text will extend students' knowledge and skills into an area of computing which has increasing relevance in a modern world of telecommunications and 'intelligent' equipment using embedded microcontrollers. This book takes a broad, practical approach in discussing real-time systems. It covers topics such as basic input and output; cyclic executives for bare hardware; finite state machines; task communication and synchronization; input/output interfaces; structured design for real-time systems; designing for multitasking; UML for real-time systems; object oriented approach to real-time systems; selecting languages for RTS development; Linux device drivers; and hardware/software co-design. Programming examples using GNU/Linux are included, along with a supporting website containing slides; solutions to problems; and software examples. This book will appeal to advanced undergraduate Computer Science students; MSc students; and, undergraduate software engineering and electronic engineering students.
Most Perl programmers were originally trained as C and Unix
programmers, so the Perl programs that they write bear a strong
resemblance to C programs. However, Perl incorporates many features
that have their roots in other languages such as Lisp. These
advanced features are not well understood and are rarely used by
most Perl programmers, but they are very powerful. They can
automate tasks in everyday programming that are difficult to solve
in any other way. One of the most powerful of these techniques is
writing functions that manufacture or modify other functions. For
example, instead of writing ten similar functions, a programmer can
write a general pattern or framework that can then create the
functions as needed according to the pattern. For several years
Mark Jason Dominus has worked to apply functional programming
techniques to Perl. Now Mark brings these flexible programming
methods that he has successfully taught in numerous tutorials and
training sessions to a wider audience.
A Student Guide to Object-Oriented Development is an introductory text that follows the software development process, from requirements capture to implementation, using an object-oriented approach. The book uses object-oriented techniques to present a practical viewpoint on developing software, providing the reader with a basic understanding of object-oriented concepts by developing the subject in an uncomplicated and easy-to-follow manner. It is based on a main worked case study for teaching purposes, plus others with password-protected answers on the web for use in coursework or exams. Readers can benefit from the authors' years of teaching experience. The book outlines standard object-oriented modelling techniques and illustrates them with a variety of examples and exercises, using UML as the modelling language and Java as the language of implementation. It adopts a simple, step by step approach to object-oriented development, and includes case studies, examples, and exercises with solutions to consolidate learning. There are 13 chapters covering a variety of topics such as sequence and collaboration diagrams; state diagrams; activity diagrams; and implementation diagrams. This book is an ideal reference for students taking undergraduate introductory/intermediate computing and information systems courses, as well as business studies courses and conversion masters' programmes.
Unified Modeling Language (UML) is a general-purpose notation
language for specifying and visualizing complex software,
especially large, object-oriented projects. Object-oriented
programming is when a programmer defines not only the data type of
a data structure, but also the types of operations/functions that
can be applied to the data structure.
Design Methods for Reactive Systems describes methods and
techniques for the design of software systems particularly reactive
software systems that engage in stimulus-response behavior. Such
systems, which include information systems, workflow management
systems, systems for e-commerce, production control systems, and
embedded software, increasingly embody design aspects previously
considered alone such as complex information processing,
non-trivial behavior, and communication between different
components aspects traditionally treated separately by classic
software design methodologies. But, as this book illustrates, the
software designer is better served by the ability to intelligently
pick and choose from among a variety of techniques according to the
particular demands and properties of the system under development.
Whatever your programming language, whatever your platform, you
probably tap into linker and loader functions all the time. But do
you know how to use them to their greatest possible advantage? Only
now, with the publication of Linkers & Loaders, is there an
authoritative book devoted entirely to these deep-seated
compile-time and run-time processes.
This book is proof that debugging has graduated from a black art to
a systematic discipline. It demystifies one of the toughest aspects
of software programming, showing clearly how to discover what
caused software failures, and fix them with minimal muss and fuss.
As the computer industry retools to leverage massively parallel graphics processing units (GPUs), this book is designed to meet the needs of working software developers who need to understand GPU programming with CUDA and increase efficiency in their projects. "CUDA Application Design and Development" starts with an introduction to parallel computing concepts for readers with no previous parallel experience, and focuses on issues of immediate importance to working software developers: achieving high performance, maintaining competitiveness, analyzing CUDA benefits versus costs, and determining application lifespan.
The book then details the thought behind CUDA and teaches how to create, analyze, and debug CUDA applications. Throughout, the focus is on software engineering issues: how to use CUDA in the context of existing application code, with existing compilers, languages, software tools, and industry-standard API libraries.
Using an approach refined in a series of well-received articles
at Dr Dobb's Journal, author Rob Farber takes the reader
step-by-step from fundamentals to implementation, moving from
language theory to practical coding.
Newly updated with over 150 pages of material on the latest Tcl extensions, "Tcl/Tk: A Developer s Gu"ide is a unique practical tutorial for professional programmers and beginners alike. Starting with a clear picture of the basics, Tcl/Tk covers the variety of tools in this "Swiss army knife" of programming languages, giving you the ability to enhance your programs, extend your application's capabilities, and become a more effective programmer.
This updated edition covers all of the new features of version
8.6, including object-oriented programming and the creation of
megawidgets, existing data structure implementations, themed
widgets and virtual events. Extensive code snippets and online
tutorials in various languages will give you a firm grasp on how to
use the Tcl/Tk libraries and interpreters and, most importantly, on
what constitutes an effective strategy for using Tcl/Tk.
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
This book gives a practical introduction to model-based testing,
showing how to write models for testing purposes and how to use
model-based testing tools to generate test suites. It is aimed at
testers and software developers who wish to use model-based
testing, rather than at tool-developers or academics.
At the heart of Apple's hugely popular iLife software suite-iMovie,
iPhoto, iDVD, GarageBand, and iTunes-is QuickTime, the powerful
media engine that drives elegant applications for managing movies,
images, and audio files. The enduring success of QuickTime is in no
small part attributable to its component architecture. This key
feature has allowed it to embrace emerging digital media
technologies and standards one by one as they have appeared over
the 12 or so years since its launch. None of the competing
technologies even comes close, let alone on both Mac OS X and
You don t need coddling; you don t need to be told what you already
know. What you need is a book that uses your experience as a Java
or C++ programmer to give you a leg up into the challenges and
rewards of C#. And this Practical Guide is precisely what you re
For a long time, there has been a need for a practical,
down-to-earth developers book for the Java Cryptography Extension.
I am very happy to see there is now a book that can answer many of
the technical questions that developers, managers, and researchers
have about such a critical topic. I am sure that this book will
contribute greatly to the success of securing Java applications and
deployments for e-business. --Anthony Nadalin, Java Security Lead
An Introduction to Web Matrix provides an easy to follow treatment
of the application of this new software, which is rapidly becoming
the preferred vehicle for the teaching of website design. Written
by two experienced users, the material is presented in a way that
makes it ideal for students meeting the subject for the first time,
whether they are on an undergraduate or postgraduate course. The
scope of the book includes the functionality of the software, its
installation and application and the design and operation of
web-based material using it. Coverage of the use of HTML and SQL is
also included, as is the design and implementation of on-line
XML Schema is the new language standard from the W3C and the new
foundation for defining data in Web-based systems. There is a
wealth of information available about Schemas but very little
understanding of how to use this highly formal specification for
creating documents. Grasping the power of Schemas means going back
to the basics of documents themselves, and the semantic rules, or
grammars, that define them. Written for schema designers, system
architects, programmers, and document authors, Modeling Business
Objects with XML Schema guides you through understanding Schemas
from the basic concepts, type systems, type derivation,
inheritance, namespace handling, through advanced concepts in
If you're an experienced programmer, you already have a rock-solid
foundation for learning Java. All you need is a resource that takes
your experience into account and explains Java's key principles and
techniques in an intelligent, efficient way.
You may like...
The Enterprise Architecture IT Project…
Christopher P. Long Book R1,901 Discovery Miles 19 010
The Struts Framework - Practical Guide…
Sue Spielman Paperback R842 Discovery Miles 8 420
JSP - Practical Guide for Programmers
Robert Brunner Paperback R691 Discovery Miles 6 910
System Architecture with XML
Berthold Daum, Udo Merten Paperback R1,714 Discovery Miles 17 140
Compaq Visual Fortran - A Guide to…
Norman Lawrence Paperback R1,675 Discovery Miles 16 750
The School of Niklaus Wirth - The Art of…
Laszlo Boszormenyi, Jurg Gutknecht, … Hardcover R1,519 Discovery Miles 15 190
Compression Algorithms for Real…
Peter Wayner Paperback R1,156 Discovery Miles 11 560
Advanced Video Coding: Principles and…
K.N. Ngan, Thomas Meier, … Hardcover R3,479 Discovery Miles 34 790
Charging Communication Networks - From…
D.J. Songhurst Hardcover R2,461 Discovery Miles 24 610
Understanding UML - The Developer's…
Paul Harmon, Mark Watson Paperback R1,473 Discovery Miles 14 730