Showing posts with label Multi-core. Show all posts
Showing posts with label Multi-core. Show all posts

6/19/2012

On Q hits milestone: 100,000+ visits

So, I was looking at my Sitemeter account earlier today (you know, the thingie that measures traffic to this blog), and here's what I saw:



My first thought upon seeing this stat? Cool! My second thought? I need to thank everyone who made it possible.

As a QNXer, I'm fortunate to have lots of cool technology to talk about. I'm even more fortunate to have readers who are willing to listen, comment, and, yes, disagree with me. Because the real fun starts when the convo warms up.

All of which to say, thank you — for visiting, for subscribing, for reading, for watching, for commenting, for responding, and, above all, for making this an enjoyable ride. And while I'm at it, a big bear hug for all the colleagues who have supported this blog with their expertise and encouragement. You guys are the best.

And now, a request...
Tell you what, let's make this occasion a little more interactive. Do you have a favorite On Q post? If so, leave a comment — I'd love to hear about it.

Meanwhile, here are 5 of the all-time most popular posts on this blog:

POSTSCRIPT
In case you're wondering, 100,000 isn't my daily visit count — it's the total count. The actual number is higher, as I started to measure traffic about six months after my first post. For those of you who prefer page views as a metric, the total is 173,000+.
 

2/14/2012

Multicore webinar coming to a screen near you

If you're developing software for an embedded system equipped with a multicore processor, have we got a webinar for you.

On Wednesday, February 15, the "two Jeffs" — Jeff Schaffer of QNX and and Jeff Logan of Freescale — will present a webinar on achieving maximum performance on multicore chips. Topics include threading models for creating multiple concurrent tasks, design patterns for increasing parallelism, and techniques for optimizing cache usage.

Did I mention? If you attend the live webinar, you'll be eligible to win a QorIQ P2020RDB-PCA reference design board through Arrow Electronics. Cool, that.

So what are you waiting for? Click the link and register. The webinar happens Wednesday February 15, at 2:00 p.m. EST.
 

11/16/2011

30 years of QNX: Celebrating a decade of Eclipse

Correct me if I'm wrong, but until Eclipse came along, the software industry didn't have a standard platform for developing applications in C and C++. This was certainly true in the embedded market, where almost every OS vendor offered their own proprietary development environment.

As a wise man once said, what a dumb approach. Vendors wasted time reinventing the wheel, when they could have focused on innovative tools that offered real value. Meanwhile, developers had to learn a new toolset every time they worked with a different OS. Doh!

Folks at QNX knew this situation had to change. Which explains why Dan Dodge, the company's CEO, became a founding steward of Eclipse.org, the consortium responsible for creating the Eclipse open-source tooling platform. It also explains why Sebastien Marineau, the company's VP of engineering, became the first project lead of CDT, the C and C++ development environment for Eclipse.

QNX's contribution didn't stop there. The company also donated a large amount of source code and developer time to the CDT project. As a result of these and other community efforts, Eclipse CDT subsequently became the C/C++ platform of choice for IBM, Ericsson, Texas Instruments, and other multi-billion dollar organizations.

Eclipse CDT also formed the basis of a major new QNX product, the QNX Momentics Tool Suite. More importantly, the platform gave QNX more freedom to innovate, particularly when it came to tools for debugging and optimizing multi-core systems. In fact, these multi-core tools garnered several awards, including:
  • Eclipse community awards, best developer tool, 2007
  • EDN China innovation award, 2007
  • Embedded World embedded AWARD, 2006
Here, for example, is a screen capture of the system profiler for the QNX Momentics Suite. The profiler is displaying CPU activity for the 4 cores of a quad-core processor:



Eclipse is ten years old this month. If you're interested in its history, or in crashing an Eclipse birthday party, check out out the Eclipse website.
 

10/26/2011

Is multicore a viable choice for medical devices?

Will even relatively simple devices
eventually require multicore?
Multicore processors, and the software required to run on them, can increase the complexity of any embedded system. Some industries, notably networking, have long embraced this added complexity. The medical device market isn't one of them.

It's easy to see why, as this same complexity could potentially hinder or prolong the process of securing FDA approval for a medical device. Getting approval is already hard enough and long enough; any new technology that might further extend the ordeal is rightly looked upon with skepticism.

And yet, multicore is the way of the future for medical devices, save for relatively simple products. We've seen this trend in other markets, including automotive, and the medical device market will, in all likelihood, follow suit.

Should medical developers be concerned? Yes, but not too much. As my colleague Justin Moon argues, the techniques needed to validate multi-core medical systems are, in fact, the same proven techniques that developers already apply to single-core systems. These techniques include testing, statistical analysis, fault tree analysis, and design verification. Meanwhile, the tools and OS technology needed to create, analyze, and optimize multicore-capable applications are, in many cases, quite mature.

And, of course, let's not forget a key benefit of multicore: significantly increased performance (through concurrency) without an attendant increase in power consumption and heat dissipation.

But enough from me. To get the argument straight from the horse's mouth, read Justin's article, Smart OS strategy makes multicore viable for medical devices, which EE Times published earlier this month.

Testing, statistical analysis, and design validation complement one another to validate a software system, whether it is running on one or multiple cores. (Click image to magnify.)
 

9/20/2011

QNX-powered flight simulators help airline pilots earn their wings

As a pilot, how do you learn to handle a critical problem, such as a hydraulic failure in mid-flight, when that problem may occur only once (if ever) in your career? And how do you practice difficult maneuvers until you get them right, without endangering yourself or anyone else? In a flight simulator, of course!

Mechtronix is one of the biggest, and fastest growing, flight simulator vendors in the world. And to get there, they've taken the road (or should I say flight path) less traveled. Rather than equip their simulators with all the hardware deployed on actual planes — the traditional method — they use software to replicate most of an airplane's behavior.

Eliminating hardware offers numerous benefits. It cuts costs dramatically. It makes the simulators lighter and easier to transport. And it makes them easier to maintain, since the customer no longer needs a specialized avionics engineer. But enough from me — let's hear Thomas Allen, VP of Technology at Mechtronix, describe the company's approach and how the QNX OS helps make it possible:



Two things stand out for me. The first is QNX's talent for juggling many concurrent tasks and gazillions of I/O points. This ability to support intense multitasking, while delivering fast and predictable response times, is essential to replicating the experience of flying a real plane.

Second, I was fascinated to hear how the system design adopted by Mechtronix parallels the architecture of the QNX OS. Years, ago, someone explained to me how the QNX OS isn't simply a well-designed, modular OS; it also encourages well-designed, modular systems. In Mechtronix, we have an example.
 

8/10/2011

Two naughty! My favorite QNX marketing campaign

Let me guess: You probably assume that the corporate culture at QNX is a bit geeky. And if so, I don't blame you. We are an OS company, after all. But you know, we can also be a little cheeky.

Case in point: A few years back, we introduced some innovative tools and OS features to help developers migrate from single-core to multi-core processors. And to promote these technologies, we decided to have some fun.

Here's the billboard we came up with:



And here's the billboard mounted on a truck, prowling the streets of San Jose during the Embedded Systems Conference:



In case you're wondering, here's what the other side of the truck looked like:



If you don't get the tightly coupled reference, it's a pun on the tightly coupled multiprocessing provided by multi-core processors. Because even when we're cheeky, we're still a little geeky.

 

7/14/2011

OIS ports ORBexpress communications middleware to latest rev of QNX Neutrino OS

You may not know it, but the QNX Neutrino OS is used in a large number of software-defined radio (SDR) devices, such as this handheld military radio from Harris. A key QNX partner in the SDR market is Objective Interface Systems (OIS), who make ORBexpress, a high-performance, real-time implementation of CORBA technology optimized for embedded systems.

This week, OIS announced that ORBexpress now supports the latest rev of the QNX Neutrino RTOS on a variety of ARM, Power, and x86 processors, including both single-core and multi-core parts. For more on the announcement, read the press release.
 

6/22/2011

QNX, Freescale collaborate on solutions for QorIQ and PowerQUICC processors

This just in: Freescale Semiconductor and QNX Software Systems have announced a strategic alliance focused on solutions for Freescale’s QorlQ and PowerQUICC processor families.

As part of the agreement, the companies intend to "share IP, invest jointly in product and technology roadmaps, and work together on go-to-market activities."

Initially, the alliance will focus on addressing the requirements of customers in the medical, industrial automation, and general embedded markets.

According to Raja Tabet, vice president, Software and Enablement Technology, Networking and Multimedia of Freescale, “QNX Software Systems is recognized globally for its highly reliable and scalable software, and we are pleased to take this important next step in our long and fruitful relationship for the benefit of our shared customers.”

The alliance between Freescale and QNX has already enabled many successful systems, including GE's flagship Mark VIe controller, which runs on the QNX Neutrino RTOS and a Freescale PowerQUICC processor. Other joint projects include the connected Corvette and the QNX medical demo, which both run on Freescale i.MX processors.

To read the press release, click here.
 

5/25/2011

QNX updates EAL 4+ certified secure RTOS

This just in: QNX has announced an update to its QNX Neutrino RTOS Secure Kernel. The new version supports a greater variety of single-core and multi-core processors and boasts faster kernel performance in periods of heavy memory utilization. It also allows developers to take advantage of Persistent Publish/Subscribe (PPS) messaging, which I've discussed in previous posts (see here, here, and here).

Like its predecessor, the new version:
Who is this product for? Primarily companies that build power plants, defense systems, subway control centers, government networks, and other mission-critical applications.

To find out more about the secure kernel, click here.
 

4/26/2011

New gesture video for BlackBerry PlayBook

If you've ever tried a BlackBerry PlayBook, you'll agree that it's one heck of a multi-tasking machine. Mind you, that should come as no surprise. After all, the PlayBook's underlying QNX Neutrino OS has supported multi-tasking since the early 1980s and symmetric multiprocessing (SMP) since the late 1990s.

Still, a true multi-tasking tablet can't simply process multiple tasks all at once. It must also allow the user to interact with those multiple tasks in a fluid, intuitive manner. And that's where the advanced gestures of the BlackBerry PlayBook come into play.

Recently, a couple of my QNX colleagues put together a video to show how those gestures can help you make the best use of the PlayBook. So, without further ado, roll the tape:


 

3/22/2011

The first QNX computer and other tales from way back when

Lots of people, including Ronen at BerryReview, enjoyed my post about the first magazine article on QNX. (It turns out that an even earlier article exists... but that's another story.)

That got me to thinking: About a year ago, I published some posts documenting key milestones in the history of QNX, starting with the very first QNX-based computer.

I started reading through the posts again, and you know what? Some of them aren't half bad. Here are my favorites:
Has the world changed since 1980, or what?
 

2/27/2011

QNX VP showcases multitasking prowess of BlackBerry PlayBook

Hey, check out this video of Sebastien Marineau, VP of engineering at QNX, as he explains how the multi-core capabilities of the QNX Neutrino OS allow the BlackBerry PlayBook to run multiple apps simultaneously:



Technically speaking, QNX Neutrino's advanced support for symmetric multiprocessing, or SMP, makes this multitasking possible. A large variety of systems, including the world's largest Internet routers, have used QNX SMP for well over a decade. Which means that the PlayBook, with its ability to deliver a full web browsing experience, uses the same technology that helps power the Web itself. Now that's pretty cool.
 

11/14/2010

Using an IEC 61508 SIL3-certified RTOS for safety-critical systems

An operating system (OS) kernel designed for safety-critical systems can't simply be reliable or elegantly designed. For instance, it must also:
  • protect applications from harming one another or the kernel itself

  • guarantee CPU time for higher-integrity code in systems that combine applications of different safety integrity levels

  • allow the developer to predict when processes will be scheduled for execution

  • prevent applications from acccessing or corrupting internal kernel information
The requirements become especially severe for an OS kernel certified at IEC 61508 Safety Integrity Level 3, or SIL3. In fact, a system certified at SIL3 must have a probability of dangerous failure below 1 in 10 million per hour of operation.

Achieving such a low risk of failure is non-trivial, to say the least. In fact, it's well-nigh impossible to satisfy the above requirements unless they are baked into the very design of the kernel.

Recently, Chris Hobbs of QNX wrote an article on the characteristics of SIL3-certified kernel. The article, published last week in Industrial Embedded Systems magazine, also touches on some development techniques for creating safety-related applications. To read the article, click here.

Support Package
If you are attempting to navigate the complexities of the IEC 61508 certification process, you might also want to check out QNX's IEC 61508 Certification Support Package.

 

10/26/2010

Video: QNX CEO talks BlackBerry PlayBook OS at DEVCON 2010

Here's a clip of QNX CEO Dan Dodge speaking at BlackBerry® DEVCON on the new QNX-based BlackBerry PlayBook OS.

Dan provides a quick intro to the QNX architecture, including its reliability and realtime performance, and discusses how it powers everything from cars to wind turbines to Internet routers. But most of all, he focuses on what QNX technology brings the BlackBerry PlayBook OS, including bred-in-the-bone multicore support and tight integration with Adobe AIR.

Enough blather. Let's watch the video:



Yesterday, RIM launched the BlackBerry Tablet OS SDK for Adobe AIR, as well as a new BlackBerry PlayBook simulator. For details, click here.

10/25/2010

RIM releases BlackBerry Tablet OS SDK for Adobe AIR

This just in: Research In Motion (RIM) has launched the new BlackBerry® Tablet OS SDK for Adobe® AIR® and the new BlackBerry PlayBook simulator. According to the press release:

  • The SDK integrates new extensions for Adobe AIR that have been highly optimized for the BlackBerry Tablet OS
  • Developers can immediately begin building applications for the BlackBerry PlayBook tablet
  • Early feedback from developers highlights ease of development and high performance
For details or to download the SDK, click here.

 

8/20/2010

QNX wins Best in Show at FTF India

This just in: QNX Software Systems has won the Best in Show award at the Freescale Technology Forum in India.

QNX took top honors for its multi-core tools and RTOS, which were showcased on a dual-core version of the Freescale QorIQ P2020 communications processor.

QNX takes a two-pronged approach to multi-core support: 1) the QNX Neutrino RTOS, which supports symmetric multiprocessing, and 2) the QNX Momentics Tool Suite, which provides a system profiler for diagnosing and optimizing multi-core software behavior.

Using the system profiler, a developer can track threads as they migrate from one core to another, diagnose IPC flowing across cores, and identify resource contention between threads on different cores. As a result, it becomes much easier to pinpoint bottlenecks and identify the best strategy for improving performance.

Here's an example of the system profiler being used to diagnose a missed deadline on a quad-core system (click image to magnify):



To learn more about how the system profiler helps improve the performance of multi-core systems, check out this whitepaper.
 

6/16/2010

30 years of QNX: First multicore-ready RTOS

This story starts in 1997. But to set some context, let's fast-forward to 2010 and look at a snapshot of CPU usage on my quad-core PC:



When you look at this snapshot, two things stand out. First, it appears that my PC has 8 CPU cores, not 4. That's because each core supports simultaneous multithreading; i.e. it can perform two computing tasks at the same time. As a result, the operating system sees each core as not one, but two, processors.

Second, each core shows a brief but intense spike in CPU usage. Now, this phenomenon could have two explanations: 1) multiple software applications suddenly required a lot of CPU cycles at almost exactly the same time, or 2) a single application spawned multiple execution threads to split its workload across the various cores.

In this case, it's door number 2: A multi-threaded image-processing application harnessed the compute power of every core to render an 18-megapixel photo at very high speed — much faster than if the application had used a single core.

To perform this magic, a computer needs more than a multicore processor. It also needs an OS that supports symmetric multiprocessing, or SMP.

SMP for embedded systems?
Rewind to 1997. Back then, SMP was still the domain of operating systems for large servers and other compute-intensive applications. These systems didn't have multicore processors, of course, but did they have multiple discrete processors running on the same board.

The size, cost, and power consumption of these multi-processor systems put them beyond the reach of most embedded systems, where the prevailing design mantra isn’t “do more with more”, but "do more with less." Thus, the idea of adding SMP to an operating system for embedded systems seemed exotic at best. Yet, that is exactly what QNX did back in 1997.

It turned out to be a prescient move. First of all, networking equipment companies were starting to realize that SMP could help address several of their computing problems, such as maintaining routing tables that contained hundreds of thousands of entries. As a result, these companies embraced QNX SMP big time in their high-end routers. And, when multicore chips started to become available, these same customers found the migration process very natural — they simply continued to use the same code and the same OS as they had before.

SMP in a car?
This early support also allowed QNX SMP to become very mature by the time multicore chips started to move downmarket into cost- and power-sensitive devices. Audi, for example, is using QNX SMP to drive an ARM Cortex-A9 multi-core processor in its next-generation in-car infotainment systems.

SMP in a car. Who would have thought?

Blast from the past
Now here's something that hasn't seen the light of day since the late 1990s: The press release introducing QNX's support for SMP.

FOR RELEASE JUNE 3, 1997

QNX Brings Power of SMP to Embedded Telecom Systems

Telecommunications developers can now combine the raw performance of SMP systems with the hard realtime determinism of the QNX/Neutrino RTOS.


SUPERCOMM’97 Conference, New Orleans LA, June 3, 1997 - QNX Software Systems (QSSL) demonstrated today that QNX/Neutrino delivers both realtime determinism and a near-linear speedup in processing power with the addition of CPUs on SMP machines. QNX achieves this high performance along with robustness and fine-grained parallelism with their new incredibly small kernel (35K). As a result, QSSL is bringing the power of SMP down to embedded systems.

“Our SMP version of QNX/Neutrino is ideal for embedded environments where system capacity is stressed,” says Dan Dodge, Vice President of R&D at QNX Software Systems. “Although Neutrino is optimized for deeply embedded systems, it’s also fully scalable. You don’t have to change any application code to transform a single-processor system into a high-end SMP cluster  simply add more processors and restart the system.”

Scale Beyond a Single SMP Machine, Build Immense Systems
QNX/Neutrino supports up to 8 CPUs per SMP machine and allows the networking of multiple SMP machines (each with up to 8 CPUs) to create architectures with immense processing power. Using standard, off-the-shelf hardware, designers can link hundreds of machines into a single QNX/Neutrino system!

QNX/Neutrino’s native message-passing Inter-Process Communication (IPC) seamlessly and transparently turns the network of independent SMP machines into a single, logical kernel.

Optimized for Very High-End Applications
Since QNX/Neutrino offers the best possible utilization of available CPU cycles, it’s ideal for very high-end realtime applications such as high-capacity telecom switches, image processing, and aircraft simulators.

Scale Systems in the Field
QNX/Neutrino applications can run on uniprocessor systems, multiprocessor systems, and network-connected SMP machines. With this range of flexibility, developers can ship systems with one processor, then expand the system’s processing power as the need arises.

In both uniprocessor and SMP systems, QNX/Neutrino’s realtime scheduling ensures that the highest priority threads are run on the available CPUs; whenever possible, a thread is dispatched to the CPU it ran on previously to optimize cache performance. Since the SMP version of QNX/Neutrino supports a processor “affinity mask,” designers can further optimize performance by selecting which CPU(s) each thread may run on.

“We expect to see a variety of applications for our ZT 5520, the market’s first 2-slot CompactPCI SBC with dual Pentium Pro processors,” says Rob Davidson, CompactPCI Product Manager of Ziatech Corporation. “Teamed with the SMP version of QNX/Neutrino, the ZT 5520 provides highly reliable symmetric multiprocessing, yielding the maximum available up-time and the maximum amount of processing for embedded applications.”

Lean Microkernel Allows Simplified Locks for Faster Performance
Because traditional monolithic kernels contain the bulk of all operating system services, they require numerous performance-robbing spin-locks in the main code paths to support SMP. In contrast, QNX/Neutrino’s lean microkernel architecture requires few locks, resulting in faster performance.

Access to data structures shared between threads and processes across CPUs is protected using standard POSIX mutexes, condition variables, and semaphores. Synchronized access to structures shared between threads and interrupt handlers across CPUs is provided through an exclusion lock available to both the thread and the interrupt handler.

Full Memory Protection
For very large systems, up to 4G of memory addressing is supported. To match the size and complexity of each target system, QNX/Neutrino offers four levels of memory protection ranging from no protection (for systems without MMU hardware) to full memory protection between programs. With memory protection, embedded PCs can intelligently recover from software failures without a system shutdown and field technicians can perform detailed postmortem diagnostics.

- END OF RELEASE -

2/22/2010

Siemens pushes the envelope with IBV's QWin virtualization software

For years, designers of industrial systems have been using Windows for their HMI while using an RTOS like QNX Neutrino for realtime control. It's a well-established practice, but comes at a price: you need to deploy two systems instead of just one.

Now that multi-core processors are cheap and plentiful, many designers want to junk the second system and consolidate both operating environments on the same chip. That way, they can deploy systems that consume less power, generate less heat, use up less space, and, last but not least, cost less. It's a green approach that pays off in greenbacks.

Recently, Siemens took this very approach for their high-speed mail sorting machines. Using QWin, a virtualization solution from IBV, the engineers at Siemens were able to deploy their QNX-based realtime control system and Window-based user interface on a single PC.

Siemens seems happy about the result. According to a project manager responsible for the project, "the operational capability of the new QWin virtualizer and the easy integration to the control unit of the mail-sorting machine exceeded all our expectations.”

Read the press release for more details.

And while you're at it, check out the other virtualization announcement that appeared today on QNX's website: QNX and Real-Time Systems Team Up to Combine QNX Neutrino RTOS with Hypervisor Technology.

12/23/2009

MulticoreInfo selects best multi-core posts of 2009

In 2009, the folks at MulticoreInfo published 1800 blog posts on multi-core computing. A couple of days ago, they selected what they believe were the top 10 posts of the year.

I haven't finished reviewing the selected posts, but I've already bookmarked a couple of them. One offers an introduction to parallel computing and other topics; the other explores the difference between concurrency and parallelism — two words that people often use interchangeably. (Count me among the guilty.)

You'll also find links to OpenMP, OpenCL, CUDA, MATLAB, Grand Central Dispatch, and many other topics, both introductory and advanced. To view the article, click here.

9/21/2009

Intel blogger: QNX BMP simplifies migration to multi-core chips

Maury Wright, former editor-in-chief of EDN Magazine, has just posted a blog on the Intel embedded community site that provides an overview of QNX's bound multiprocessing technology — aka BMP.

If you've never heard of BMP, it's a variant of symmetric multiprocessing (SMP) that simplifies the migration of legacy applications to multi-core processors. In a nutshell, it allows legacy apps to run on a multi-core chip as if they were still in a conventional uniprocessor environment. Meanwhile, it allows new, parallelized apps to take full advantage of the chip's multiple processing cores.

In other words, your old stuff can run on a multi-core chip without going haywire or messing up your new stuff. This is good.

Maury provides a nice overview of the technology. You can view his blog here.