Maplesoft Blog

The Maplesoft blog contains posts coming from the heart of Maplesoft. Find out what is coming next in the world of Maple, and get the best tips and tricks from the Maple experts.

Latest Posts Latest Blog Posts Feed

Why Go Parallel?...

September 14 2009 dohashi 1072 Maple

Computers with multiple processors have been around for a long time and people have been studying parallel programming techniques for just as along. However only in the last few years have multi-core processors and parallel programming become truly mainstream. What changed?

Here are some definitions for terms used in this post:

  • core: the part of a processor responsible for executing a single series of instructions at a time.
  • processor: the physical chip that plugs into a motherboard. A computer can have multiple processors, and each processor can have multiple cores
  • process: a running instance of a program. A process's memory is usually protected from access by other processes.
  • thread: a running instance of a process's code. A single process can have multiple threads, and multiple threads can be executing at the same on multiple cores
  • parallel: the ability to utilize more than one processor at a time to solve problems more quickly, usually by being multi-threaded.

For years, processors designers had been able to increase the performance of processors by increasing their clock speeds. However a few years ago they ran into a few serious problems. RAM access speeds were not able to keep up with the increased speed of processors, causing processors to waste clock cycles waiting for data. The speed at which electrons can flow through wires is limited, leading to delays within the chip itself. Finally, increasing a processor's clock speed also increases its power requirements. Increased power requirements leads to the processor generating more heat (which is why overclockers come up with such ridiculous cooling solutions). All of these issues meant that is was getting harder and harder to continue to increase clock speeds.  The designers realized that instead of increasing the core's clock speed, they could keep the clock speed fairly constant, but put more cores on the chip. Thus was born the multi-core revolution.

The Parallel Programming Blog...

September 11 2009 dohashi 1072 Maple

My name is Darin Ohashi and I am a senior kernel developer at Maplesoft. For the last few years I have been focused on developing tools to enable parallel programming in Maple. My background is in Mathematics and Computer Science, with a focus on algorithm and data structure design and analysis. Much of my experience with parallel programming has been acquired while working at Maplesoft, and it has been a very interesting ride.

In Maple 13 we added the Task Programming Model, a high level parallel programming system. With the addition of this feature, and a few significant kernel optimizations, useful parallel programs can now be written in Maple. Although there are still limitations and lots more work to be done on our side, adventurous users may want to try writing parallel code for themselves.

To encourage those users, and to help make information about parallel programming more available, I have decided to write a series of blog posts here at Maple Primes. My hope is that I can help explain parallel programming in general terms, with a focus on the tools available in Maple 13. Along the way I may post links to sites, articles and blogs that discuss parallel programming issues, as well as related topics, such as GPU programming (CUDAOpenCL, etc).

My next post, the first real one, I am going to explain why parallel programming has suddenly become such an important topic.

It’s been nearly ten years since I first walked onto the University of Waterloo campus as a freshly minted undergraduate, bright-eyed and bushy-tailed and eager to learn all about electrical engineering. I guess it’s hard to believe the speed with which time passes. It’s actually a bit astonishing how much I can still remember about orientation, or “frosh” week, like 4 a.m. fire drills, a very messy obstacle course, sitting with 800 other young engineering students in a lecture hall, and above all, meeting new friends.

Man, what a ride!!...

August 25 2009 PaulG 45

Recently, we were asked by a designer of thrill rides if we could help them define a design tool that would allow them to push the envelope in rider experience, while considering engineering constraints and, of course, rider safety.

This week I decided to do some research and find out the details of how to make model animations with MapleSim, by adding in CAD drawing files of the component parts. To see what I mean, take a look at this quick animated movie that shows a robot arm with five degrees of freedom:

At the recent Vehicle Dynamics Expo in Stuttgart, I presented an example that demonstrates the speed with which you can perform the complete model-development-to-HIL process for a vehicle stability controller using MapleSim. The process begins with the development of a full-chassis vehicle model in MapleSim. This is a detailed model that includes the geometries for a double-wishbone suspension at the front and semi-trailing arms at the rear, with Fiala models for the tires. The stability controller, or Electronic Stability Program (ESP), is a predictive model based on a simplified vehicle model (referred to as the “bicycle model” since it only uses one wheel at the front and rear). When activated, the controller estimates what the desired yaw rate should be from the simple model, compares this with the actual yaw rate, and applies a braking force proportional to the difference to the appropriate front tire.

Through the landmark book, Zen and the Art of Motorcycle Maintenance, Robert Pirsig introduced generations of engineers to formal metaphysics. This engaging story chronicles the journey of a man and his teenage son on a single motorcycle through America. Through their encounters with challenges of all sorts, the man explores and wrestles with the notion of “quality”, in both the mechanical sense – the quality of his machine, and the human sense – the quality of a person or a relationship. I’m a big fan of interdisciplinary education and I was always thrilled to find out that this book is actually mandatory reading at many engineering universities. Today, I think I have a much better sense of where this thrill comes from.

A few weeks ago I made a short trip down to Lincroft, New Jersey, to deliver a Maple training course to a group of math professors at Brookdale Community College. I’d been to Manhattan before, but never New Jersey, and didn’t really know what to expect. I was pleasantly surprised to fly in over a lush and verdant landscape, with temperatures hovering in the mid-70s. My host, Barbara, had graciously invited me to her home for dinner, and we had a great conversation about teaching math, the Verrazano Bridge, dealing with deer in the backyard (Barbara was originally a Brooklyn girl, used to the concrete jungle!), and of course, what to expect the next day at the college.

Notes from Stuttgart...

June 30 2009 PaulG 45

Last week was rather crazy…

Monday afternoon, I’m sitting in a canoe on a beautiful lake in the wilds of Ontario…

…Tuesday morning, I’m in Stuttgart for the Vehicle Dynamics Expo to introduce MapleSim 2 to the many automotive engineers that have converged from just about every European nation, and beyond, to learn about new technologies and methodologies for the design of vehicle chassis systems, including  suspensions, steering, tires (or tyres, depending where you come from), and braking systems. One hot topic of discussion is the rapid development of vehicle stability controllers, given that all new passenger vehicle designs must now by law include active stability control. This is very timely for us because we are able to show our hardware-in-the-loop (HIL) demonstration that includes a full-vehicle model developed in MapleSim and running on dSPACE and National Instruments PXI real-time platforms, with a MotoTron prototype controller interfaced to the vehicle model via a CANbus interface. I’ll describe this in more detail in a later blog post.

“Keep Austin weird” is probably the best civic slogan I have ever encountered. Austin, Texas is one of the most charming cities in the US. It’s the capital of the state of Texas and also the self-professed live music capital of the world. In addition, the University of Texas at Austin is the largest university in the US, and its influence on the technology sector has spun off a very vibrant high technology business center as well. This mix of government, the arts, academia, and technology is the quintessential recipe for a very dynamic, vibrant, and yes, weird (in a good way) community.

Ever since I filled out my university application papers, I’ve been faced with the cocktail party question, “So, why did you decide to study engineering?” It’s not surprising, of course, given the low number of women who choose to enter the fields of math or engineering. I’ve actually been asked this question so often that I have a stock answer which I can pull out without having to think about it: When I was considering my field of study, I was equally drawn to the arts and the sciences, but it made more sense to prepare myself to work
in a field where the jobs were. Engineering seemed a good fit, and still provided a sort of outlet for my creative impulses. Plus, it would be easier to pursue art and music as a hobby, rather than anything scientific; it would be much harder to find the resources to pursue any scientific interests on my own.  Why electrical engineering? I’d heard it involved more math, something I was drawn to.

I was fully expecting to write Part 2 of my postcard from China when a life-changing event interrupted my creative processes. My son Eric is thirteen and is about to complete grade 8. Math is not exactly his strongest subject but I blame it all on the fact that he has not started algebra in any substantial way yet… where math starts and that arithmetic nonsense stops.  In classic Eric style, he informed me that he had a math test the very next day and he absolutely needed to have a scientific calculator. “How did you do your homework so far then?”, I naively asked … “I don’t know … I faked it”.  After a moment of disbelief, with a sprinkling of anger, all mixed with a hint of pride that he got a B in math while “faking” the calculations, we got in the car and headed off to Staples.

It wasn’t that long ago that people were thinking that personal rocket jetpacks would be a reasonable means of transportation.  Unfortunately, we’re still a bit of a ways off on that dream.  That being said, we can still do a lot of cool things with rockets.

Rockets find their origins in ancient China.  The availability of black powder to propel projectiles was a precursor to the development of the first solid rocket.  The discovery of black powder by Ninth Century Chinese alchemists led to experiments in the form of weapons such as rocket-propelled fire arrows.

Maplesoft launched a new application center on its website on April 2, 2009. One objective of the update was to make it easier for visitors to find great content for both Maple and MapleSim. We wanted to make sure that all pages list the best applications first. While on many pages, including the home page, the MapleSim content page and the Tips & Techniques page, our editors can control the order of the applications, with almost 2000 applications, editors cannot rank all of the applications manually.

Lucky 13??...

June 03 2009 Paul 395

The Canadian Press reported last week the fortune of 13 women working on the 13th floor of an Edmonton bank tower winning a $50-million lottery jackpot. Combine this with the recently released version 13 of Maple and one might claim that notorious number 13's luck is changing.

Early in the development of Maple 13 the question of whether to use "13" was raised. From Apollo 13 to hotels with a missing floor, superstition surrounds this number.  Microsoft Office 2010 is slated to be released as version 14.0; the previous version was 12.0. Corel's WordPerfect Office marketed their version 13 as "X3" -- combining a roman numeral and decimal digit.

First 9 10 11 12 13 14 15 Page 11 of 15