Showing posts with label concurrent programming. Show all posts
Showing posts with label concurrent programming. Show all posts

Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs Review

Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs
Average Reviews:

(More customer reviews)
Are you looking to buy Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs? Here is the right place to find the great deals. we can offer discounts of up to 90% on Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs ReviewAs a Java engineer, I cannot really recommend this book. While the authors are definitely knowledgeable about their subject, they do not do a good job in communicating their knowledge to a reader. The book reads like a doctoral thesis, poorly organized, not well laid out. Brian Goetz book on Concurrency is a much better book.Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs Overview

Want to learn more information about Modern Multithreading : Implementing, Testing, and Debugging Multithreaded Java and C++/Pthreads/Win32 Programs?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems) Review

Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems)
Average Reviews:

(More customer reviews)
Are you looking to buy Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems) ReviewBefore this book was published my primary reference and personal favorite TP book was "Transaction Processing: Concepts and Techniques" by Jim Gray and Andreas Reuter. At over 1100 pages that book thoroughly covered the basics and drilled down into the nuances of transaction processing in a way unmatched by other books on the topic since it was first published in 1993.
This book changes that by going far beyond transaction processing. It starts with the same fundamentals as the older book, and even covers many of the same topics, such as concurrency control, but it addresses each topic from a much wider perspective. For example, the discussion of concurrency goes far beyond the issues of transaction processing as a middleware component. It extends into application, database and search issues. Another indication that this book is more up-to-date is the material on queue managers. While they are at the opposite end of the spectrum from transaction processing monitors, they are integral to any discussion of transactional information systems. More importantly, both transaction processing monitors and queue managers are used in modern enterprise architectures. Having both topics discussed in great detail is a major point in this book's favor.
Personally I intend to keep my copy of the older "Transaction Processing: Concepts and Techniques" because it does cover some of the subject matter more deeply. However, this book has replaced it as my principal reference and if I had to choose between them this is the one I'd go with.Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems) Overview

Want to learn more information about Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery (The Morgan Kaufmann Series in Data Management Systems)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

GPU Computing Gems Emerald Edition (Applications of GPU Computing Series) Review

GPU Computing Gems Emerald Edition (Applications of GPU Computing Series)
Average Reviews:

(More customer reviews)
Are you looking to buy GPU Computing Gems Emerald Edition (Applications of GPU Computing Series)? Here is the right place to find the great deals. we can offer discounts of up to 90% on GPU Computing Gems Emerald Edition (Applications of GPU Computing Series). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

GPU Computing Gems Emerald Edition (Applications of GPU Computing Series) ReviewI have to agree with H. Nguyen. This book is a missed opportunity. GPGPU computing is new for programmers and barely even known by scientists. The entries in this book don't really show sophisticated GPGPU philosophy or idioms. You won't read this and have "aha" moments. It would be nice if the text focused on advanced uses of segmented scan (the central trick in GPGPU computing) for load balancing and allocation, and helped the reader develop a toolbox for writing their own kernels. What's really needed is a GPU replacement for basic computer science texts like Sedgewick et. al. Just learning how to add up numbers, write a sort, write a sparse matrix code, etc, near peak efficiency of the device, is a great learning experience, because you learn to think with cooperative thread array logic rather than imperative logic. Until you master that, it's not possible to write efficient GPU code. I give the contributors credit for the articles, but I think the editorship made a mistake by not giving the book a clearer and more narrow focus. Hopefully there will soon be a book that tackles ten can't-live-without algorithms and covers them in very fine detail, addressing all performance aspects of the code and showing how coupled it is to device architecture.
On the other hand I'm giving the book a second star because it does let the reader know there are others using GPGPU to solve science problems, and the topics are pretty interesting, even if the implementations are not in the GPU idiom.
The best references are still the technical docs from NVIDIA and ATI (you should read both vendor's docs even if you only deal with CUDA, as extra perspective helps), the CUDA technical forum, and the handful of research papers written by good GPGPU coders (many who work at NV now).GPU Computing Gems Emerald Edition (Applications of GPU Computing Series) Overview

Want to learn more information about GPU Computing Gems Emerald Edition (Applications of GPU Computing Series)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

CUDA by Example: An Introduction to General-Purpose GPU Programming Review

CUDA by Example: An Introduction to General-Purpose GPU Programming
Average Reviews:

(More customer reviews)
Are you looking to buy CUDA by Example: An Introduction to General-Purpose GPU Programming? Here is the right place to find the great deals. we can offer discounts of up to 90% on CUDA by Example: An Introduction to General-Purpose GPU Programming. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

CUDA by Example: An Introduction to General-Purpose GPU Programming Review"CUDA by example: an introduction to general-purpose GPU programming" is a brand new text by Jason Sanders and Edward Kandrot, senior members of NVIDIA's CUDA development team. This is basically the second introductory text to hit the market on general-purpose GPU programming, the first one being "Programming Massively Parallel Processors: A Hands-On Approach" by David Kirk and Wen-Mei Hwu.
The Good: it is not very common to find a technical book in this price range that is not simply in greyscale. Perhaps unsurprisingly for an NVIDIA book there's quite a bit of green, and this definitely enhances the reading experience. On a more substantive note: the authors really mean the "by example" part of "CUDA by example". From chapter 3 onward, all the main concepts are fleshed out by showing and dissecting lots of code -- probably more so than in Kirk & Hwu's text, which includes application case studies, but also more extensive treatments of the CUDA architecture. As with any example-based book, it is important to run and modify the programs while reading through the text. Right now there are a few hiccups with the files Sanders & Kandrot were kind enough to provide (e.g. as of this writing README.txt and license.txt do not have the appropriate permissions set), but I'm pretty sure these are just teething troubles which will disappear soon enough. The writing is cheerful (e.g. "For those readers who are more familiar with Star Trek than with weaving, a warp in this context has nothing to do with the speed of travel through space.", p. 106) and the explanations are for the most part clear, the language being pretty lucid -- once again, probably more so than in the Kirk & Hwu volume. This fact, along with the availability of lecture slides and lab materials for the latter book, points to the main difference between the two texts: Sanders & Kandrot are better-suited to a self-study of CUDA C, while the Kirk & Hwu book is more of a class textbook (and thus broader). Finally, I was pleased to see Sanders & Kandrot include a whole chapter (chapter 11) on working with multiple GPUs, a topic Kirk & Hwu relegate to a short section.
The Bad: having color is a welcome addition, but I could not understand why the authors chose to simply follow the text editor's default highlighting of keywords when they could have used color to highlight specific portions of the code. Similarly, a number of figures (e.g. Figs. 5.5 and 8.1) are described in the text as containing green, but they show up in greyscale. The book also contains quite a few minor typos, but that's normal; what's not normal is that every single section cross-reference outside the appendix is wrong (I counted 16 in total). Moving on to more consequential matters: Kirk & Hwu have a chapter on floating point topics; given that numerical computations are certainly part of general-purpose GPU programming, Sanders & Kandrot could have said more about them. On a different note, Kirk & Hwu have a chapter on the competing programming model OpenCL, while Sanders & Kandrot do not even have an index entry on it -- one might counter-argue here that they have knowingly put CUDA in the title. This brings me to my main gripe with this book: why didn't the authors just call it "CUDA C by example"? I believe the answer is connected to their ambivalence toward C++. An illustrative example: new and delete are used in host code only once in the entire volume (on p. 82 and p. 84, respectively), but when the code snippets are shown again (on pp. 86-87) new and delete have been silently replaced by malloc and free! In the case of device code, the authors do not discuss CUDA-supported C++ constructs like default parameters, namespaces, function templates, not to mention compute capability 2.0 things like function objects. (Structures with member functions do not beget C++). In a nutshell, the book contains too much C++ for people who only know C, and not enough C++ for those who actually use that language.
Despite these misgivings, I cannot ignore this book's low selling price (especially on the Kindle), its practical focus on a multitude of code listings, and the fact that its explanations are generally clear. Thus, I think it is an appropriate buy for those interested in learning about CUDA C.
Alex GezerlisCUDA by Example: An Introduction to General-Purpose GPU Programming Overview

Want to learn more information about CUDA by Example: An Introduction to General-Purpose GPU Programming?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

ERLANG Programming Review

ERLANG Programming
Average Reviews:

(More customer reviews)
Are you looking to buy ERLANG Programming? Here is the right place to find the great deals. we can offer discounts of up to 90% on ERLANG Programming. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

ERLANG Programming ReviewWhat is most attractive about the Erlang programming language is that from the beginning it was designed to solve real and difficult problems, and to do it in an elegant and powerful way. It is also a small language, which makes writing tools for it much more practical than for larger language such as Java or C++.
This book is written for experienced programmers, but not necessarily those that have any prior exposure to Erlang or even functional programming languages in general. The book consists of two parts. The first should be read sequentially, like a textbook. The second part, however, can be read in any order as you need the informaton. The following is a listing of the chapters and a brief description of what you'll find in each.
The first part of the book consists of the first eleven chapters, and describes the core parts of the Erlang language.
1. Introduction - Gives a high-level overview of the characteristics and features that have made Erlang so successful, provides insight into the context in which the language was designed, and describes how this influenced its current shape. Case studies show how Erlang is actually used, comparing it with other languages and highlighting its strengths.
2. Erlang Basics - Covers the basics of Erlang. Some of this will be elementary for experienced programmers, and some will not, such as the fact that you can assign to each variable only once. The chapter starts with defining the basic Erlang data types, and concludes by showing how to define Erlang functions and place them into modules to create programs.
3. Sequential Erlang - An important topic here is recursion, which is perhaps the most useful and powerful of all techniques usually found in a functional language. It allows a programmer to traverse a data structure via successive calls to the same function. Also exception-handling mechanisms are covered here as is the debugger.
4. Concurrent Programming - Concurrency is when different functions execute in parallel without affecting each other unless explicitly programmed to do so. The ability of the runtime system to scale concurrency to levels such that there can be thousands of processes running in parallel with a small memory footprint differentiates Erlang from other concurrent programming languages. This chapter discusses all of these matters.
5. Process Design Patterns - Many Erlang processes will fall into one of three categories - client/servers, finite state machines, and event handlers. This chapter looks at examples of process design patterns, explaining how they can be used to program each of these three types of processes. The OTP framewor is also part of this topic, but OTP doesn't get discussed until chapter 12.
6. Process Error Handling - Erlang has simple but powerful constructs built into the language's concurrency model. These constructs allow processes to monitor each other's behavior and to recover from software faults, and are discussed here.
7. Records and Macros - In the first part of this chapter you will learn about records, which make code evolution easier to achieve. The key to this is the fact that records provide data abstraction. Macros, the other topic in this chapter, allow you to write abbreviations that are expanded by the Erlang preprocessor. Macros can be used to make programs more readable, to extend the language, and to write debugging code. The chapter concludes by describing the include directive, by which header files containing macro and record definitions are used in Erlang projects.
8. Software Upgrade - The software upgrade mechanism relies on a set of simple but powerful constructs upon which more powerful tools are built. These upgrade tools are used in pretty much every Erlang-based system where downtime has to be reduced to a minimum. These topics are explored here.
9. More data types and high-level constructs - The various language features covered in this chapter, many of them derived from functional programming languages, are tools that will improve the productivity of a working Erlang programmer. The topics are: funs and higher-order functions, list comprehensions, binaries, and serialization.
10. ETS and Dets Tables - To handle fast searches, Erlang provides two mechanisms. This chapter introduces Erlang Term Storage (ETS) and Disk Erlang Term Storage (Dets), two mechanisms for memory and disk-efficient storage and retrieval of large groups of data. Erlang also provides a full database application, Mnesia, which is covered in chapter 13.
11. Distributed Programming in Erlang - This chapter explores the theory behind distributed systems and shows how it is applied to Erlang-based systems. Erlang distribution is built into the language, and can be completely transparent to the user.
The rest of the book can be read in any order as needed:
12. OTP Behaviors - OTP behaviors provide library modules that implement the most common concurrent design patterns. Behind the scenes the library modules insure that errors and special cases are handled in a consistent way. As a result, OTP behaviors provide a set of standardized building blocks. This subject is a large one and this chapter is only an introduction.
13. Introducing Mnesia - Mnesia is a powerful database that is part of the standard Erlang distribution. It merges the efficiency and simplicity of ETS and Dets tables with the Erlang distribution and adds a transaction layer on top. Again, this is a large subject and this chapter acts only as an introduction.
14. GUI Programming with Erlang - GUIs are not one of Erlang's strengths, but it does have a cross-platform GUI programming system, wxErlang, which is a binding of the wxWidgets system. This chapter introduces wxWidgets and explains its Erlang binding. After describing the event-handling mechanism in wxErlang, a scaled-down blog example is presented using it. This chapter concludes with a number of pointers for learning more about wxWidgets and wxErlang, and a series of exercises to improve and extend the running example.
15. Socket Programming - Sockets allow programs written in any language to exchange data on different computers by exchanging byte streams transmitted using the protocols of the Internet Protocol. Sometimes even Erlang programs must rely on such a lower-level mechanism for communication.
16. Interfacing Erlang with Other Programming Languages - Discusses how to link Erlang with a C program, Java program, or the Unix shell.
17. Trace BIFs, the dbg Tracer, and Match Specifications - Explains in depth how all aspects of Erlang systems can be traced without degrading their performance.
18. Types and Documentation - This chapter shows how you can write down the types of functions as a part of their formal documentation in Erlang, using the EDoc documentation framework. In addition, what you write down as the type of a function can be checked for consistency against the function definition using the TypEr tool, which is also discussed here.
19. EUnit and Test-Driven Development - In this chapter, the EUnit tool, which gives you a framework for unit testing in Erlang, is discussed. It is shown in action and there is a discussion on how it supports test-driven development.
20. Styles and Efficiency - Summarizes design guidelines and programming strategies to use when developing Erlang systems. The chapter also covers common mistakes and inefficiencies and looks at memory handling and profiling.
Appendix A - Using Erlang- Recommends tools to help you in Erlang softare development and also lists resources for programmers such as websites and books.
I've spent some considerable time with both Haskell and Erlang, two very good functional languages. When it comes to high concurrency and networking applications, Erlang is probably the best choice. However, I still like Haskell because I've found it easier to handle when writing multimedia applications, which is often my focus. You could take a long time to come to your own conclusions, but I found this book and the recently published book on Haskell, Real World Haskell, to cut that time down extensively by explaining the features of both languages so well. I therefore highly recommend this book to people trying to make up their minds about Erlang and those that have made up their minds and now need a clear book on the subject.ERLANG Programming Overview

Want to learn more information about ERLANG Programming?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...