Jump to content

Parallel programming, Arduino and the good kind of trouble

+ 4
  blackbear's Photo
Posted Jun 16 2010 05:50 AM

Parallel programming tends to invoke images of expensive multi-core processors and clusters of blade servers buzzing away on interesting problems. But Matt Jadud, a computer science professor at Allegheny College, believes that even teeny-tiny devices like Arduino boards can benefit from a judicious application of parallel programming. At next month's OSCON conference he'll talk about how parallel programming can help artists and makers. In the following Q&A, he reveals a handful of interesting parallel applications and looks at the broader educational impact of low-cost computing.

Why does parallel programming make sense on a small device like an Arduino board?

Matt Jadud: The reason is that we're trying to solve an educational problem. We look at the Arduino as a brain for things like robots or other systems that you might want to play with, that interact with the real world. And the last time I checked, the real world is always happening. Often, multiple parts of it are happening at the same time. So even if you're watching one sensor, another is telling you something you should know about.

What we're trying to do is use languages that have been around for a long time -- in our case it's Occam -- and put it in a context where we're able to say "do this and this at the same time." And I want to let the software handle the complexity for me and make sure everything talks to each other correctly. We're trying to put that in more people's hands, so they can learn about parallel solutions without having to implement them from the ground up.

What are some of the interesting applications of Occam/Arduino?

Matt Jadud: What's nice about the language is it's very easy to replicate control across a lot of inputs and route data between processes. We have some people who are using this for art installation work, looking to control large numbers of inputs and outputs.

Another contributor is adding servo control code. Although that's not necessarily interesting in and of itself, it's really neat from having worked on this for a number of years to see somebody come along and say, "Hey, I want to make this better." I know that's the open source way, but it's still fun when it happens to a project you work on.

This summer, I have two students who are working on an unmanned aerial vehicle. They're going to take the ArduPilot and develop a control system that is parallel-safe for aerial robotics.

We've released the Mac version of our tools, and by OSCON we'll have the Windows and Linux installers done.

How can these tools help artists and tinkerers?

MJ: We wanted to give the Arduino community a choice of tools, and let people think differently.

For example, we were working with a student art major who was involved with the RepRap Darwin project. Through that interaction, we started to see what matters to an artist if they want to sit down and engage in some kind of interactive digital art.

Basically, an artist or a tinkerer or a hacker has a goal. They don't really care about learning Occam. They don't care about how this language is different from C. They just want to make a cat door that keeps their cat out when the cat comes back with a mouse. Or they want to make some kind of installation piece. Trying to focus as much on the user and the possible goals they might have is what's motivating our work right now.

How have low-cost computing devices changed the educational process?

MJ: Over the past 10 years, with the advent of Lego Mindstorms and broad adoption of cell phones, more computer science faculty have been willing to bring devices into their classroom experiences. But devices can be expensive and require tools that are closed or difficult to obtain.

Devices change rapidly, too. If I develop a curriculum and I need two or three runs of a class to really get all of my materials ironed out, by the time I'm done, the hardware and software have marched on. That's hard. I'm not even talking about the "lazy teacher" or anything like that. It's hard semester after semester to update software tools to keep up with a constantly changing platform.

What's wonderful about Arduino is that it's cheap. I have no qualms about a $20 lab fee for my students where they get to own the computer when they're done. That encourages them to continue playing afterwards. And I have confidence that even if the hardware changes, I can order 30 more Arduinos myself and assemble them. If I want a five- or seven-year run on a particular curriculum, I can get it. It means I have time for the tools to stabilize.

Because Arduino is open, it's a vibrant and exploratory community. When somebody goes out and buys an Android phone, they're buying a phone. When somebody goes out and buys an Arduino, they've got trouble they intend to cause. They're going to do something with that. That's an interesting space to be in when you're trying to develop tools to support learning and exploration.

Matt Jadud will be exploring this topic further in "Plumbing: Parallel Programming for Artists and Makers," a session at the 2010 OSCON conference.


1 Reply

  longloveraphan's Photo
Posted May 08 2013 03:02 AM

มีเกมส์ คาสิโนที่หลากหลายให้บริการทุกคุณไม่ว่าจะเป็น บาคาร่าออนไลน์ รูเล็ต ไฮโล ถั่วโป บิงโก มีมาตรฐานในระดับโลกและให้คำแนะนำถ่ายทอดสดโดยตรงตลอด 24 ชม. สำหรับจุดเด่นของที่นี่คือ เพื่อให้สมัครเป็นลูกค้าทุกท่านได้รับความสะใจสนานไปพร้อมกับเรา ไม่ว่าจะเป็นโบนัสเงินฝาก ค่าคอมมิสชั่น goldclub slot เพราะในการเล่นการพนันที่ต้องการที่จะดึงดูดความสนใจให้คนเข้ามาเล่นการพนันเป็นสมาชิกให้เยอะที่สุดเพื่อเป็นการเพิ่มรายได้ให้แก่เว็บไซต์ต่างๆนั่นเองและเรื่องที่มีความสำคัญมากสุดก็คือเรื่องวิธีเล่นการพนันฟุตบอลที่อาจจะเล่นแล้วมีความหวังที่จะได้เงินมาง่ายการแทงบอลผ่านเว็บสามารถที่จะแทงบอลได้ทั้งก่อนและก็หลังการแข่งขัน เราขอการันตี เราพร้อมเปิดให้แนวทางสมาชิกทุกคุณได้แล้ววันนี้ หากท่านสมัครเข้าใช้งานใหม่กับเราวันนี้เรามีโปรโมชั่นรับฟรี ยอดเพิ่มขึ้น คงเป็นเรื่องที่ทุกท่านชื่นชอบกันอย่างมากเลยครับกับระบบเว็บไซต์คาสิโนออนไลน์ เพราะวิธีเล่นออนไลน์แม้ไม่ต่างจากวิธีการเล่นที่คาสิโนจริง จากนั้นท่านจะได้รับหมายเลขบัญชีธนาคารจากการสมัครผ่านทางเว็บไซต์ หรือทางเราจะส่งเข้าไปยังเบอร์ติดต่อของสมาชิกทุกคุณ ในการเข้าใช้คำแนะนำ sbo ที่อยู่ในการจัดส่งของรางวัล ควรเป็นที่อยู่ที่มีผู้เซ็นต์รับ หากสินค้าส่งไม่ถือมือผู้รับและมีการติดต่อเพื่อ ให้จัดส่งของรางวัลใหม่