Researchers at MIT have been working on a fork of LLVM to explore a new approach to optimizing parallel code by embedding fork-join parallelism directly into the compiler’s intermediate representation (IR). This, the researchers maintain, makes it possible to leverage most of the IR-level serial optimizations for parallel programs.
The Servo browser, built from scratch by Mozilla Research, has matured to the point where nightly builds are available for download. The group hopes to broaden the browser's reach so that they can quickly improve its web compatibility and performance.
In his presentation "Understanding Hardware Transactional Memory" at QCon New York 2016, Gil Tene introduces hardware transactional memory (HTM). Whereas the concept of HTM is not new, it is now finally available in commodity hardware. The purpose of HTM is to be able to write to multiple addresses in memory in an atomical way so that there cannot be inconsistencies in cooperation other threads.
Version 6.1 is the first major GCC release in about one year. It contains substantial new functionality, says GCC maintainer Jakub Jelinek, including new C++17 features, full support for OpenMP, and improved support for OpenACC.
A group of researchers from Microsoft has published the paper “IronFleet: Proving Practical Distributed Systems Correct” (PDF) and made available the accompanying source code demonstrating the use of the methodology in machine proving the correctness of a non-trivial distributed system from a safety and liveliness point of view.
GameAnalytics, maker of a free analytics platform, has recently open sourced gascheduler an Erlang library that provides a generic scheduler for parallel execution of distributed tasks. InfoQ has spoken to Chris de Vries, one of gascheduler’s creators.
A major feature of RAD Studio XE7 is its Parallel Programming Library. XE7 brings task-based parallelism to a variety of platforms including Windows, OS X, iOS, and Android. Unlike Mono, this tool-chain offers fully native applications on all target platforms.
Speaking at the Hot Chips Conference, HSA Foundation president Phil Rogers has provided more details on plans to bring GPU acceleration to Java in time for Java 9 in 2015.
Version 1.1 of Google's Go is in beta, and brings significant reported performance increases, new toolset & language features. It maintains backwards compatibility with Go 1.0 and in most cases a recompile is the only thing needed to take advantage of this release.
There are two major browser developments recently announced, both targeting parallel architectures: Google and Opera with Blink, a WebKit fork, while Samsung joins Mozilla to push Servo forward.
The Dutch company Vector Fabrics recently introduced its tool called Pareon. According to the company’s press release, the tool allows to optimize applications for multicore systems.
Hoping to make programming data-parallel hardware easier, Microsoft has published its open specification for C++ AMP. By building its implementation directly into Visual Studio 11 Microsoft seeks to improve access to the GPU for developers.
It is hard to leverage the parallelism provided by recent processor architectures. As these CPUs are now available even in the low cost price sector, the main challenge of software engineers is to utilize the processors in their applications or apps. The International Conference on Multicore Software Engineering, Performance, and Tools (MSEPT'12) will focus on possible answers.
Dataflow Blocks are the backbone of the .NET 4.5’s new high performance parallel processing library. And while they offer a lot of functionality out of the box, there will be times when a custom block is necessary. Zlatko Michailov has put together a document outlining the process and many of the traps you may encounter.
Microsoft has been working on ways to improve the performance of parallel applications in .NET 4.5, specifically those using the Task Parallel Library. One of most impressive improvements is reducing the overhead for waiting on 100,000 tasks from 12,000,000 bytes to a mere 64 bytes.