OnQ Blog

Qualcomm MARE (Multicore Asynchronous Runtime Environment), Making Multicore Programming Easier [VIDEO]

26 févr. 2014

Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.

If you've bought a smartphone in the past two years, chances are it has more than one CPU core in it. The box it came in likely boasts DUAL-CORE or QUAD-CORE! In fact, 2013 was a major milestone for the industry with the number of mobile multicore devices surpassing the number of PCs and servers.

Multiple cores can help an app run incredibly fast, however the app has to be written to take advantage of more than one core—and most apps today aren’t written that way.

That’s because programming for multicores is much harder. It requires developers to refactor the algorithmic design in their applications and to think about parallelization of their algorithms. Expressing the relationships and dependencies between the different parts of a parallel algorithm is one of the most difficult aspects of multicore programming for many developers. The most commonly deployed technique for exploiting parallel programming is multithreading. Implementing and managing threads in a software project for a small number of threads can be manageable but can have a significant negative impact on the development efficiency for more complex algorithms and workloads.

Last year Qualcomm Technologies, Inc. introduced a new programming library for developers using the C++ programming language to make implementing multicore parallelization significantly easier, especially on mobile platforms like Android. Qualcomm® MARE, for Multicore Asynchronous Runtime Environment, provides an API that simplifies the programming of parallel applications, such that they can take advantage of the full computational power of modern smartphones. Two of the first Android applications to use Qualcomm MARE are Impala by Euvision Technologies and UCAM from Thundersoft.

Euvision Technologies new Impala for Android application is an on device camera solution that provides visual scene recognition and photo scene classification. It implements artificial intelligence on the device using machine learning techniques. EUvision describes it as follows:

While pointing the camera, it recognizes the scene to be captured even before the picture is actually snapped. The scene recognition is realized by artificial intelligence running on the user's phone.

Based on what the smart photo camera "sees," Instagram-like filters are applied automatically. The selected filters are optimized for popular scenes commonly photographed. For instance, when pointing the camera at people, the "Forever Young" filter is applied, which draws anti-wrinkle hydrating masks over the faces of your friends.

Furthermore, as soon as the camera detects you are about to take a picture of a handful of blueberries or a cinnamon chip scone, it automatically applies the "Now It's Tasty" filter. While taking photos of buildings or monuments, the so-called "Empire State" filter is applied. This filter is best suited for outdoor scenes since the altered lighting gives the images a more icy look.

"The scene recognition software in Euvision Technologies Impala mobile app is inherently parallel. Updating our software to exploit this parallelism using Qualcomm MARE has been a breeze. Another advantage is that MARE works on most major platforms. The realized speed-up was near-linear, enabling us to execute real-time scene recognition on Android devices” said Daniel Fontijne, Lead R&D for Impala Mobile.

Apps like Impala are continuously executing large amounts of code in order to see, think and suggest actions to you in real time. It takes a lot of computing muscle to do this without experiencing a lag time. By implementing Qualcomm MARE’s libraries and APIs, Impala was able to achieve just that!

Thundersoft was also able to take advantage of Qualcomm MARE’s API tools to build its UCAM application, which is currently available in Google Play and has over 30MM downloads to date globally. UCAM uses Qualcomm MARE to implement parallel real-time image filters that users can select to apply to their images, parallel processing used to speed up the creation of animated gifs and finally, a feature that allows users to smartly cut out faces or people from images and place them against different backgrounds.

Thundersoft was able to implement five times less code than traditional multithreading (Pthreads), for the parallel real-time filters, and achieve higher performance than if they were to manage threads themselves in the UCAM application.

“Implementing Qualcomm MARE in UCAM, our full-featured camera app, allowed us to very quickly exploit multicore CPU performance on Android devices ranging from the low end to the high end. We had to write a fraction of the code for image filtering and photo processing scenarios implementing MARE vs. pthreads in C++ and were able to get superior performance,” said Pengcheng Zhou, senior vice president of Engineering at Thundersoft.

Qualcomm MARE can be used in apps that run on any Android device with any multicore processor. The Qualcomm MARE SDK is also available for Linux, Windows or OS X, enabling programmers to develop and debug their applications in a familiar environment, before moving to a mobile platform.

Follow this link for more information and to download the SDK: https://developer.qualcomm.com/mobile-development/maximize-hardware/parallel-computing-mare.



Qualcomm MARE is a product of Qualcomm Technologies, Inc.

Samir Kumar

Sr. Director, Business Development

More articles from this author

About this author

Related News


Meet Qualcomm Centriq—the latest member in Qualcomm Technologies’ expanding family of processors

So what’s in a name? A lot, actually. A name can be descriptive, evocative, abstract, or a composite of words. From a business perspective, your product’s name is one of the many things that sets it apart from the competition. But what elevates it in order of importance is that it’s often the first clue for your customers of what the spirit of your product is and what it can do.

Today, we are pleased to announce a new name to the Qualcomm Technologies roster of products: Qualcomm Centriq—a new family of SoC processors from Qualcomm Datacenter Technologies exclusively for the server market. The name was inspired by the all-important data center market which Qualcomm’s ARM V8 Server SoC will serve.

When will Qualcomm Centriq be available? Our first generation of Qualcomm Centriq processors are on track to sample production silicon before the end of this year, as stated by Qualcomm President Derek Aberle in February 2016. We look forward to bringing you more Qualcomm Centriq product details later this year.

In addition to selecting a server processor family name, we’re pleased to announce that Qualcomm Datacenter Technologies, Inc. has also been formed as a subsidiary of Qualcomm Technologies to aggressively pursue opportunities in the data center industry which, according to leading industry analyst research firms* as of February 2016, was forecasted SAM of $18B by 2020.

Qualcomm started out on our data center journey several years ago. Following is a snapshot of accomplishments thus far:

  • Announced to the street that Qualcomm is investing in data centers at our November 2014 analyst meeting
  • Began sampling ARMv8 custom 24-core server development platform in late 2015 to target customers and partners
  • Established several ecosystem relationships with hardware and software companies. To this end we announced strategic relationships with Xilinx to enable industry-leading heterogeneous computing solutions and with Mellanox to enable advanced, cost-effective connectivity platforms for data centers 
  • Established a joint venture with the People’s Government of Guizhou province to focus on the design, development and sale of advanced server chipset technology in China—a fast growing market which represents a significant growth area for data center solution providers
  • Established Cache Coherent Interconnect for Accelerators (CCIX) consortium—of which Qualcomm Technologies is a founding memberalong with other industry partners (with heterogeneous computing on the rise, having open compute and accelerator standards is important)

Stay tuned for more details about Qualcomm Centriq coming later this year.

18 août 2016