Programming

Oferowane pozycje:



Multi-Core Programming - Increasing Performance through Software Multi-threading
ISBN: 0-9764832-4-6

Discover programming techniques for Intel multi-core architecture and Hyper-Threading Technology

Software developers can no longer rely on increasing clock speeds alone to speed up single-threaded applications; instead, to gain a competitive advantage, developers must learn how to properly design their applications to run in a threaded environment. Multi-core architectures have a single processor package that contains two or more processor "execution cores," or computational engines, and deliver—with appropriate software—fully parallel execution of multiple software threads. Hyper-Threading Technology enables additional threads to operate on each core.

This book helps software developers write high-performance multi-threaded code for Intel's multi-core architecture while avoiding the common parallel programming issues associated with multi-threaded programs.

Highlights include:

Elements of parallel programming and multi-threading
Programming with threading APIs
OpenMP*: The portable solution
Solutions to common parallel programming problems
Debugging and testing multi-threaded applications
Software development tools for multi-threading

This book is a practical, hands-on volume with immediately usable code examples that enable readers to quickly master the necessary programming techniques. The companion Web site contains pointers to threading and optimization tools, code samples from the book, and extensive technical documentation on Intel multi-core architecture.



Programming with Intel Extended Memory 64 Tech. - Migrating Software for Optimal 64-bit Performance
ISBN: 0-9764832-0-3

Take full advantage of 64-bit computing on IA-32 processors.

Intel Extended Memory 64 Technology (Intel EM64T) brings 64-bit processing capabilities to desktops, servers, and workstations while ensuring full compatibility with current 32-bit operating systems and applications. Intel EM64T improves performance by allowing the system to address more than 4 gigabytes of virtual and physical memory. Using this technology, you can enjoy the flexibility to move to 64-bit processing whenever it makes the most sense for your needs.

Learn how to migrate 32-bit code to processors with Intel EM64T and achieve better performance when working with large datasets. This practical guide removes the guesswork, giving you tips on optimization and best known methods to develop flexible, scalable, 64-bit software applications for desktops and general-purpose server/workstation platforms.

Highlights include:

Description of Intel EM64T and the associated programming changes
Implications of ILP 64 for data structures and byte alignment
Tools and techniques for successful migration to 64 bits
Mixing of 32-bit and 64-bit applications
Writing code that takes advantage of new instructions
Effective use of big memory while avoiding the pitfalls
Examples written in C language

Essential reading for every developer whose code will run on Intel Architecture Processors with Intel EM64T.



Programming with Hyper-Threading Technology - How to Write Multithreaded Software for Intel(r) IA-32 Processors
ISBN: 0-9717861-4-3

Programming with Hyper-Threading Technology by Richard Gerber and Andrew Binstock helps software developers write high-performance multithreaded code while avoiding the common parallel programming issues that usually plague threaded programs.

This book highlights how software developers can use Hyper-Threading Technology to maximize processor throughput, efficiency, and parallelism. It is a practical, hands-on volume with immediately usable code examples that enable readers to quickly master the necessary building blocks.

Hyper-Threading Technology allows one physical processor to execute the instructions of multiple threads simultaneously, making the processor appear as two processors to the operating system. Likewise, Hyper-Threading Technology also enables a single processor to run two different programs at the same time without the delay of switching between them.

The companion CD-ROM contains threading and optimization tools, code samples, and extensive technical documentation on Hyper-Threading Technology.



The Software Vectorization Handbook - Applying Multimedia Extension for Maximum Performance
ISBN: 0-9743649-2-4

The growing popularity of multimedia extensions has renewed the interest in vectorizing compilers. The Software Vectorization Handbook provides a detailed overview of compiler optimizations that convert sequential code into a form that best exploits multimedia extensions.

This book is written for compiler engineers and programmers of scientific, engineering, and multimedia applications who are interested in learning the latest techniques for improving software performance. The primary focus is on the C programming language and multimedia extensions to the Intel Architecture, although most conversion methods are easily generalized to other imperative programming languages and multimedia instruction sets.

Topics discussed range from traditional data dependence analysis and loop-oriented vectorization to more multimedia-oriented alignment optimizations and vectorization of straight-line code. All presented optimizations are available in the high performance Intel C++/Fortran compilers that support automatic vectorization for MMX™ technology and the Streaming SIMD Extensions (SSE). The book also includes guidelines on how to use these compilers to take advantage of multi-media extensions with a minimum of engineering effort.



Itanium Architecture for Software Developers
ISBN: 0-9702846-4-0

This unique description of the Intel Itanium application architecture helps the software development community to use the power of Intel's new line of 64-bit processors. The book provides:

Knowledge that helps developers understand how to create high-performance software by tapping the unique features of the architecture and corresponding compilers.
Clear explanation of how the massively parallel Itanium architecture meets demand for increased throughput by Internet-based applications and e-Commerce.
Highlights of unique concepts that help the reader to understand how the new architecture differs from traditional IA-32 architectures.
Descriptions of salient features of the Itanium processor's application software architecture.

This is the starter book for your collection on the new architecture. The target audience is a broad mixture of application developers who are creating new 64-bit applications or are porting current applications to the new architecture. It is also a valuable resource for developers of firmware, system software, or operating systems. For those who want to know what's happening inside but don't wish to program in assembly language or tune applications with special tools, this book orients the software developer making the transition from 32-bit to 64-bit architecture.



Programming Itanium-based Systems - Developing High Performance Applications for Intel’s New Architecture
ISBN: 0-9702846-2-4

This is the first general programming book for software application developers targeting the Itanium processor family.

Programming Itanium-based Systems will help you to harness the power of Intel's new line of very long instruction word (VLIW) processors by providing:

Code optimization advice, including low-level explanation of what happens under the hood when code is compiled
Explanation of ways the application programmer can take advantage of the EPIC architecture's parallelism
A thorough treatment of porting applications to the Itanium environment
Unique insights into optimization and tuning of Itanium applications - including numerous examples and an extensive case history
Insight into the effective use of Itanium software development tools

This is the book for you:

If you want to know how to create, optimize, and tune application software for the Itanium architecture
If you are making the transition from 32-bit to 64-bit addressing
If you are buying your first, perhaps your only, book on the Itanium family of processors

You can find additional detailed information about the architecture in a companion book from Intel Press, Itanium Architecture for Software Developers.



Scientific Computing on Itanium-based Systems
ISBN: 0-9712887-7-1

Written for professionals who need to write, port, or maintain reliable, accurate, and efficient numerical software for the Itanium architecture, Scientific Computing on Itanium-based Systems shows you how to construct key numerical infrastructure and application programs.

This book describes the crucial techniques required for stability and reliability in developing numerical kernels and applications. Through numerous tested examples, the authors explain how you can get the most from the 64-bit architecture. This combination of explanation with example helps you to make difficult computations more easily and to increase the performance of your numerical software.

This book provides examples to solve problems encountered in scientific and engineering computations, such as:

Polynomial evaluation
Complex arithmetic
Quad-precision arithmetic
Software pipelining, to include register rotation and modulo-scheduled loop support
SIMD instructions
Interval arithmetic
Fast-Fourier Transformation (FFT) algorithms
Numerical linear algebra and basic linear algebra subprograms (BLAS)
Vector Math Library (VML)
Cryptography



The Software Optimization Cookbook, Second Ed. - Get the most out of Intel IA-32 platforms with Intel EM64T and multi-core processing
ISBN: 0-9764832-1-1

Get the most out of Intel IA-32 platforms with Intel EM64T and multi-core processing.

The Software Optimization Cookbook, Second Edition, provides updated recipes for high-performance applications on Intel platforms. Through simple explanations and examples, four Intel experts show you how to address performance issues with algorithms, memory access, branch prediction, automatic vectorization, SIMD instructions, multiple threads, and floating-point calculations.

Software developers learn how to take advantage of Intel Extended Memory 64 Technology (Intel EM64T), multi-core processing, Hyper-Threading Technology, OpenMP*, and multimedia extensions. This book guides you through the growing collection of software tools, compiler switches, and coding optimizations, showing you efficient ways to improve the performance of software applications for Intel platforms.

Highlights include:

Choosing the right algorithm
Automatic vectorization and hints on how to guide the compiler
Compiler support for multi-threading
The performance impacts of shared L2 and L3 caches
Loop optimizations and when to use the compiler for performance gain
Use of intrinsics to exploit SIMD technology

Software developers who want to understand the latest techniques for delivering more performance and to fine-tune their coding skills will benefit from this book.



Programming with Intel(r) Wireless MMX(tm) Technology - A Developer's Guide to Mobile Multimedia Applications
ISBN: 0-9743649-1-6

Intel Wireless MMX™ technology is the latest high-performance, low-power, seamless extension to the Intel XScaleź microarchitecture. Intel Wireless MMX technology offers developers a powerful set of new instructions that enhance the multimedia capability of Intel Personal Internet Client Architecture (Intel PCA) based mobile devices.

Programming with Intel Wireless MMX Technology shows software developers how to incorporate Intel Wireless MMX technology into mobile and handheld applications. Along with complete information about the instruction set, the book provides an overview of the tools that ease application development.

Expert authors deliver sound advice on optimizing applications, porting code from the desktop, and implementing algorithmic techniques that have been proven to yield the best performance.

Examples of the key algorithms used in mobile multimedia applications are included:

Video compression
2D and 3D graphics
Image processing

The companion CD-ROM contains all code samples presented in the book, additional technical documentation, and evaluation versions of Intel Software Development Products.



UPnP Design by Example - A Software Developer's Guide to Universal Plug and Play
ISBN: 0-9717861-1-9

Networked devices should be as easy for consumers to set up as stereo equipment-when you plug it in and turn it on, it "just works". Universal Plug and Play technology can make this happen. This book is primarily a resource for software developers who are implementing UPnP technology in their products. It also provides a great introduction for those who are new to the technology.

Traditionally, network peripherals have not been easy to install. Recent standards such as Universal Serial Bus (USB) and Plug-and-Play have improved the situation so that devices are automatically detected and device drivers automatically installed. Yet, networked devices, like Internet gateways and networked printers, still require manual setup and configuration.

If you are a software developer who is already familiar with basic network programming concepts and protocols, UPnP* Design by Example provides everything you need to know to design UPnP technology into your product.

In this book, you will discover:

Basic UPnP concepts such as control points, devices, and services
Protocols that form the foundation of the UPnP architecture
An example of how to develop a UPnP device from start to finish
The latest topics, such as UPnP Audio/Video and Simple Control Protocol (SCP)

The CD-ROM contains:

C-language code for all examples presented in the book
Complete UPnP specifications and related documents
The Intel SDK for UPnP Devices for Linux, including source code and binaries
Tools to view and interact with any UPnP device, to monitor UPnP protocols, and to generate XML device descriptions





Change-Based Test Management - Improving the Software Validation Process
ISBN: 0-9717861-2-7
With the difficulties of today's economy, many companies are placing a renewed emphasis on reducing expenses. Unfortunately, software validation is often one of the first areas to feel the pressure of lower budgets.

With the ever-increasing complexity and speed of today's hardware, how can you continue to produce a high quality product while maintaining or even lowering your operational costs? The answer lies in refining the validation process.

This book is an introduction to Change-Based Test Management (CBTM), specifically written for software engineers and testing specialists. CBTM is a prioritization scheme that focuses on testing the changed portions of software first. Using this new methodology, software quality can be significantly improved, while development time can be reduced.

Topics include an overview of current development models and test methodologies, a complete and comprehensive study of CBTM, in-depth case studies, and test automation techniques.

Learn how to:

Use CBTM to increase software quality and decrease testing time and cost
Validate earlier in the development cycle to lower the cost of removing defects
Write better tests, monitor their performance, and measure the improvement
Automate the validation tasks using the right tools for the job



Intel(r) Integrated Performance Primitives - How to Optimize Software Applications Using Intel(r) IPP
ISBN: 0-9717861-3-5

Intel Integrated Performance Primitives (Intel IPP) is a software library for application developers that increases performance from Intel's latest microprocessors. Incorporating these functions into your code provides time-to-market advantages while reducing the overall cost of development. Intel IPP also gives access to advanced processor features without having to write processor-specific code.

Introducing the many uses of Intel IPP, this book explores the range of possible applications, from audio processing to graphics and video. Extensive examples written in C++ show you how to solve common imaging, audio/video, and graphics problems.

Inside you will learn how to:

Become proficient using the Intel IPP library and application programming interface
Apply Intel IPP to improve performance and speed development of your applications
Use Intel IPP to solve common application problems

The accompanying CD-ROM includes all code examples presented in the book and an evaluation version of the Intel Integrated Performance Primitives.



VTune™ Performance Analyzer Essentials - Measurement and Tuning Techniques for Software Developers
ISBN: 0-9743649-5-9

A real challenge in modern software environments is the ability to properly identify performance bottlenecks. The Intel VTune™ Performance Analyzer helps locate and remove software performance bottlenecks by collecting, analyzing, and displaying performance data from the system-wide level down to the source level.

VTune Performance Analyzer Essentials is written for software application developers, software architects, quality assurance testers, and system integrators who wish to take the guesswork out of software tuning. Much like diagnostic computers for tuning engines, or flashlights for seeing plumbing in the dark reaches of your basement, the tools within the VTune analyzer "illuminate" your system and everything running on it. This book is a guide to "turning on the lights" and understanding what you see.

Included are a wide range of examples and step-by-step techniques that illustrate the VTune analyzer in action. Topics include:

Hotspot hunting and automatic analysis
Software tuning guidelines for different languages, such as C++, Fortran, Java*, Microsoft* Visual Basic*, and Microsoft* C#
Automation of analysis tasks
Remote analysis techniques for "headless" servers, PDAs, and cell phones
How to analyze multithreaded programs

A special companion Web site to this book contains all code examples and bonus material, plus trial versions of Intel software development products including the VTune Performance Analyzer.

Script logo