Intel Software

Syndicate content
Updated: 2 days 6 hours ago

Hack your way to an Ultrabook at Angel Hack 2 (SF & Boston)

February 3, 2012 - 5:57pm


Think you've got what it takes to code an Intel AppUp app in 30 hours? For those that are up to the challenge, check out the AngelHack 2 hackathon happening in San Francisco and Boston, March 3-5, 2012.

read more

Intel AppUp at the Game Developers Conference, March 5-9

February 1, 2012 - 11:27am


It's that time of year, again - we can't wait to see you all at the 25th annual Game Developers Conference in San Francisco, March 5-9, 2012!

The Intel AppUp developer program team will be at the event in full force and we'll be looking to meet you and hear about your apps! Some of our activities at the show include:

read more

2011 Game Piracy Observations – Have Consoles Failed the Piracy Litmus Test?

January 31, 2012 - 6:53pm

So I’ll let you all draw your own conclusions; but I’ve been mulling over a few articles released earlier this month around the piracy statistics released via TorrentFreak. The first article I read was Tom’s article on Gamasutra titled “Report: Crysis 2 named most-pirated game of 2011”. That article led me to the link he posted that takes you to Ernesto’s article posted up on TorrentFreak titled “The Most Pirated Games of 2011”. They’re both great reads and for those interested in the topic of Piracy I recommend reading through them both; the posted comments are always good to scan as well. However; I think both articles lead me towards wanting to scrutinize these claims in FAR more depth.

Links to both articles here:
Gamasutra: http://www.gamasutra.com/view/news/39461/Report_Crysis_2_named_mostpirated_game_of_2011.php
TorrentFreak: http://torrentfreak.com/top-10-most-pirated-games-of-2011-111230/

Here’s a screen capture from the latter site that I’ll be discussing: (Attributes/Thanks to TorrentFreak & Ernesto)

So let’s dissect this & put things in more context. Besides the obvious exclusion of PS3 data – what stands out to you all? …………………………. Give up? Here are the things that stand out the most to me.

1) Does anyone see any Games here that lean on Free to Play/Freemium? (w/Micro-transactions)
2) Does anyone see any MMO, or Subscriptions based Games here?
3) Does it strike anyone else that these games all appear to originate in the Western Hemisphere?
4) Aren’t most of these games still leaning heavily on the Retail fire & forget release model?
5) Most of the games listed also stand out as those that are candidates for Secondary Sales.

Ok… yes…. Before I get flamed I do realize that a few of these are dabbling in things like Online Pass, & some platform specific exclusives, Co-Op modes that lean on a great multi-player experience etc., and so forth. However; I really believe that what we’re seeing occur in Piracy is largely (but not always) a function of these ‘Pirated’ games perhaps not taking, or leveraging more fully, the full tool-set of Business Model Options, Game Design Choices, & or Current Technology that can help reduce, or even in some cases eliminate Piracy outright. I honestly don’t get it. That said, not every game might be a good candidate for say the Freemium/Free-to-Play model, or warrants a subscription; however, it seems like the Western Hemisphere’s Game ISVs – could at least consider some form of a hybrid approach to implement at least (1) of these new trends or technologies to tackle Piracy issues. The alternative is to continue to blame the PC for being a bad platform to publish your game on. However; I don’t hear this kind of story coming out of Eastern Hemisphere Games Companies such as: Nexon, TenCent, Shanda, Netease, etc. So again… I’m at a loss as to why. Also; is the PC really that bad to publish on after all? I believe the PC as a platform to bring your games to is far superior as long as one's willing to tap into some of those relatively newer game design choices, business, and distribution models; but it's going to require some changes in our thinking and playing some catch up to other parts of the world. (Note: Worth adding that localizing your content on day 1 release as globally as possible is also extremely important - especially if you want to reduce Piracy)

Last but not least we have to ask ourselves the following question. When looking at the links or the posted pic we see that PC is leading piracy rates, then it’s the Wii, then it’s the Xbox 360. Interestingly enough though, how much of this is due to the active install base of players on those respective platforms? It’s interesting to note that the higher the Install base, the higher the Piracy rates. Mere coincidence? I doubt it. Bear in mind, the volume of GPU capable PC Gamers over say the Xbox 360 platform is at least 4:1. (~250mu to ~60mu). The Wii has to be somewhere in the neighborhood of at least ~85-90mu or ~3:1 PC to Wii Gamers. Which is an extremely conservative estimate by the way for PC Gaming but I digress. So I’ll leave you with this thought. What would the Piracy rates be on the 360, Wii, or even the PS3 *if* the Active User Install base were at least comparable to that of the PC global install base? Sadly… I think what you’d see is comparable rates of Piracy; regardless of what platform a Publisher chooses. The net is this – and in my opinion it appears that: One: Consoles have failed to truly curb Piracy, and Two: As a result we’ve ended up with an experiment in Consoles that have unfortunately held back gaming and left us with sub-par gaming experiences.

Perhaps it’s time to break those shackles?!

Building a Great Computer an Interview With Alex Watson

January 31, 2012 - 6:42pm

 

For many years I have been buying my personal computers from the large companies. While I have always been happy with the computers I bought I thought that this time around I would try something different.   I had a job to do that was going to demand a lot of computing power.  So I decided I would try to get a computer that was more customized to my particular needs.  A friend highly recommended Alex Watson to me as the person who could build me a great computer system.  I was impressed with Alex from the first moment we met and  I am very happy with the computer he built for me.  I also found him to be a well spring of information on the hardware for assembling PCs.  I had originally planned on doing  do some speed tests comparing my new and old Intel chip sets but there were too many other differences between my new and old computer to make it a viable comparison.  I did think that Alex has some interesting info and insights to share so below is my  interview with him.

1. I know that besides building computers you are an actor. How did it happen that an actor started building custom computers? Tell me a little about yourself and what brought you to be interested in building custom computers for people.

Well, I came out to Los Angeles to do entertainment and I have done pretty well, but there is a lot of down time. So I started my company Mobile Mac LA.  At first I was just doing the repair thing, viruses,  iPhones, stuff like that,  then started doing upgrades.  I started noticing that not only did people have old hardware they had the wrong hardware.  I also noticed that a lot of people especially in entertainment had both PC’s and MAC’s.  They loved their MAC’s but there are some programs that wouldn’t run on them.  So I went about building a machine that could, if the client wanted to install it,  run all operating systems available today.  That’s pretty much how I started.

2. What advantages does having a custom computer built have over getting a customized computer from Dell,  HP or getting an Apple,  which I know can't be customized?

That is a great question and one I get all the time.  The custom computers I build have just as much to do with the software you are using as the hardware in your system.  When I meet a client for a custom build the first thing I do is get a list of programs or games they want to use and the priority in which they use them.  Not all hardware will play well or sometimes even be tolerable with some software.  I will give you a gaming and Pro Application example.  If you use your computer to play lets say World of Warcraft then getting the most expensive fastest 1 gigabyte graphics card wont run nearly as well as the cheapest 2 gigabyte card you can get. This is because that particular game relies heavily on memory rather then processing power. If you were however going with the game Crises the situation would be reversed.  On the application side using Adobe’s Premier Pro you could get the best top of the line AMD card and it would run horrible compared to a mid level NVidia.  This is because PP uses CUDA technology heavily and AMD doesn’t have that.  Those are just a few examples of hardware playing well with software and trust me when I say it encompasses the whole system not just the graphics card.  My aim is that the custom system is built specifically and primarily for the main use of the computer but also will perform very, very well with all programs the client uses.  I would also like to point out that a lot of times the client ends up saving money because they are not getting overpowered components that they would see no benefit from.

3.  I know you specialize in building multi operation system computers. What are the difficulties you run into setting up these multi platform computers?

Getting a computer that can run ALL operating systems available today can be a little bit tricky.  Many of the operating systems out there will run on PC hardware quite easily given the right drivers. Some are more difficult to set up but once you get them running correctly they are all incredibly stable.  I would say most difficult aspect is getting the right equipment and then telling the operating system what that equipment is even if its not initially designed to support it. Having it be friendly to the end user is also very important. Almost all of the systems I build I use a third party boot loader. This allows you at boot up time to choose what operating system you want to use. You can set a default OS and then if you want to switch you restart your computer and at the prompt choose whichever one you would like.  It can take some time in the set up of the system but once it is done it is pretty seamless to the client.

4. I know you use Intel chip sets in the machines you build. Why is that? How would you compare the new Intel chips that are coming out to the old ones?

Intel is just the best.  I hate to sound like an ad but its true.  It works without problems on all operating systems, they will run forever if you treat them well, and in my opinion introduce more innovative technology then anyone else.

I am very excited to get my hands on the new Ivy Bridge chipset.  The smaller size 22nm means less power, less heat.  The new architecture will give a performance boost at clock to clock speeds, its backward compatible to the 1155 Sandy Bridge boards and that’s not even what I am excited about.  For the past 5 years or so when a new chip comes out it’s not just about speed anymore it has become about functionality.  It used to seem like they would build the chip for the motherboard and now it’s seems its the other way around.  First it was the dual core processor then it was the quad core then it was hyper theading and now in addition to all of that its graphics and video encoding.  I think the new chips are going to be well worth the upgrade and I really love that they made it backwards compatible so you can just replace the chip and depending on your motherboard get most if not all of the new features.

5. What recommendations would you make about hardware to someone putting together a system now, especially someone looking for a lot of power and speed, say someone like me who is going to be doing a lot of 3D and multi media work versus someone who just wants to read email, go on the internet and play games on their computer?

Well there are so many choices out there and you really have to do your research. First off when your building your system, whether its high end like yours or just to surf the internet, to me you have to start with a great power supply.  It’s the foundation. I like to use Corsair myself but there are many great ones out there. Make sure you have the right amount of power and that its going to the right place. Second of course is the motherboard. Now this decision can be a tricky one, other of course then brands I like, Intel, Gigabyte and Asus. Once again there are many great manufactures out there these are just my preference. Back to what I was saying before, it can be tricky. You don’t want to get a board that won't do what you need but then again you don’t want to spend a bunch of money on features you won't use.  A good way to go about doing your whole system is think not only do you want it for now but also a year from now.  A great example would be graphics.  Lets say you want to build a system for gaming but you are about to drop a bunch of cash on the system and can't afford the 2 graphics cards you want. You have to make sure that when you do get the cash for the second card that the motherboard can do the crossfire or sli at the speeds you will want.  It’s much cheaper to spend an extra 20 bucks now on a nicer board then having to replace the whole thing in a year.  Now graphics is the most obvious but it applies to all features of the board i.e. max ram, SATA ports, I/O ports to name a few.  So make a list of what you want and need now and what you will want and need in a year. This is where research really comes in handy. Before you know what you need, you need to know what the programs you use need.  Most programs have a supported hardware list but that doesn’t mean that is the only hardware that will work with the program. Check the discussion boards on your programs, I guarantee there will be many topics on what hardware works and what won’t. In the end doing the research will save you time and money in the long run.

6.  What do you envision is the future of the PC?

This question is almost to vast to answer.  A lot of people think PC’s are going the way of the dodo,  but its not. It will be more of a transformation then extinction. I will sum it up with one word. Integration.  I think we are moving to the place where the home PC will be more of centralized system for data then a box with a monitor and keyboard. Science fact is starting to catch up to science fiction.  I am guessing that within the next 5 years whether you have one device or 5 they will all have the same information at your disposal instantaneously.  Computers are getting faster, smaller and more universally connected.  Some of the technology is here and some is right around the corner.  The PC used to be for education and business. Then came games, and it was also for entertainment.  Then the Internet was born and it became an instant information resource.  Now it is becoming your own little personal hub of you, all your work, all your movies, all your music, all your communication. Soon whether you need milk or not, gas or not, what time you want your lights turned on and at what level, auto scheduling your appointments. Voice commands and hand gestures will become more of the norm.  (Basically, the Jetson’s without the flying car and robot maid).  Most of what I have mentioned is already in use today in some form and is slowly starting to trickle down to the average consumer.  Now it’s just about linking them all together. We have cars that can park themselves, video games that use your body motions to play, and Siri.  Hey there you go, strap an iPhone to a Roomba and there’s that robot maid.


 

Vectorization - Find out what it is, Find out More!

January 31, 2012 - 12:58pm

One of my performance focus areas for this year is vectorization. I am excited to start creating more content and spreading the message about this technology, as it has been a little bit underappreciated in the past. So to kick things off, I am going to launch a blog series and a 1-hour overview webinar.

-------------
First, information about the webinar. I will be hosting this with my colleague Wendy Doerner on Feb 15th at 9AM PST. We will cover how to get started with vectorization, including examples and resources. To register or view the abstract, click this link:
https://www1.gotomeeting.com/register/761784545
If you attend the event live, you will also have the opportunity to request a followup from one of our vectorization experts!

-------------
For the blog series I will answer 3 questions:
What is Vectorization?
Who Can Use It?
What Are the Benefits?

Today I will start with the first question: What is Vectorization?

Vectorization is a method for achieving parallelism inside a single processor core. Vectorizing is done by using special instructions called SIMD (Single Instruction, Multiple Data) operations. SIMD instructions, and the hardware that goes along with them, have been present in Intel processors for over a decade. (Remember those commercials in the mid-90s with people dancing in bunny suits promoting MMX™ Technology? MMX was a set of SIMD instructions). The way that SIMD instructions work is that they operate on several pieces of data in parallel.
In the typical (non-vectorized) case, when you add together 2 variables, they will each be stored in their own CPU register. If you perform an operation on them, such as addition, the 2 register quantities are added and the result stored back into a register. Using a SIMD instruction, you can fill a register with multiple variables to be added, which is called "packing" the register. With the most recent SIMD instruction set, Intel® Advanced Vector Instructions (Intel® AVX), which are available on Intel® Microarchitecture Codename Sandy Bridge processors, you can pack up to 32 data elements into one register. The number of elements allowed depends on the size of the element - in Intel® AVX, for example, registers are 256 bytes wide, so each can hold 32 8-byte integers, or 8 32-byte floats, or 4 64-byte floats, etc. These data elements can all be combined with another packed register full of elements, allowing you to perform multiple operations on multiple pieces of data at once. For instance, adding 2 packed SIMD registers would produce multiple results, which would be stored into a packed register as well. Being able to do these operations at once rather than one right after the other can result in significant performance gains for the right type of code.

And addition is not the only operation possible on a packed register! Each set of SIMD instructions includes many different operations, with more being added in upcoming processor generations.

But that takes us to the next topic, Who can use vectorization, which we'll cover in the next blog. Feel free to ask questions in the comments of this blog series too, I might turn the questions into future entries. Thanks for reading!

Looking at increasing the reach of your Education Apps through Intel AppUp℠ center. Join us for a webinar to learn more

January 30, 2012 - 9:52pm

Help your education apps reach more users by targeting the Ultrabooks™. Join us for a webinar to learn more about how you can port your existing apps or create new apps for Ultrabooks using the Intel AppUp™ encapsulator tool. Tap into a new class of consumers through the Intel AppUp℠ center, and sell your education apps to PC, Netbook and Ultrabook™ users across the globe.

read more

Looking at increasing the reach of your Education Apps through Intel AppUp℠ center. Join us for a webinar to learn more

January 30, 2012 - 9:52pm

Help your education apps reach more users by targeting the Ultrabooks™. Join us for a webinar to learn more about how you can port your existing apps or create new apps for Ultrabooks using the Intel AppUp™ encapsulator tool. Tap into a new class of consumers through the Intel AppUp℠ center, and sell your education apps to PC, Netbook and Ultrabook™ users across the globe.

read more

Don’t Miss the Webinar on Taking your Games to Ultrabooks with HTML5

January 30, 2012 - 9:45pm

You can now take your games to a new class of users by targeting the Ultrabooks™. Join us for a webinar to learn more about how you can port your existing games or create new games for Ultrabooks using HTML5.

read more

Don’t Miss the Webinar on Taking your Games to Ultrabooks with HTML5

January 30, 2012 - 9:45pm

You can now take your games to a new class of users by targeting the Ultrabooks™. Join us for a webinar to learn more about how you can port your existing games or create new games for Ultrabooks using HTML5.

read more

Don’t Miss the Webinar on Taking your Games to Ultrabooks with HTML5

January 30, 2012 - 9:45pm

You can now take your games to a new class of users by targeting the Ultrabooks™. Join us for a webinar to learn more about how you can port your existing games or create new games for Ultrabooks using HTML5.

read more

M2, Moneyball, and a new way to create software

January 30, 2012 - 1:28am

Cross-posted from my blog on the Yocto Project website. Check us out there and the other things we're doing on Embedded Linux.

I sat down this morning to jot down a few words about the latest Yocto Project development milestone, which has the very homely name of "M2". We pause at this time to branch our code, run a full pass of our QA suite and make sure we are on track with major features. (This is all good by the way).

The developers working on the Yocto Project are a very interesting bunch - we have people who have worked in open source projects for their entire careers and others who come from the world of product development. It's fascinating to see these worlds intermix as we try to do the right thing to make Linux the  best choice for embedded development.

Now before you think I'm totally confused on this point, let me assure you, I am not. The Yocto Project is not a product. It is an open source project, which will form the upstream for products, ranging from devices to board support packages to operating systems from the like of Mentor Graphics and Wind River Systems. To be a stable basis for these products, we take seriously the need to track the health of our bits as we develop them.

You can track project health with all kinds of metrics and dashboards and charts. Often it comes down to the experience and intuition of the project leaders to figure things out.

In 2001, the Oakland Athletics baseball team was eliminated from the playoffs by the New York Yankees, a team with three times the money available for players. How could the Athletics (or A's as they are called) ever hope to beat a team with so much money to spend? The tale is told in Moneyball, nominated for the 2011 Best Picture Oscar.

Now, I will confess, I am not such a fan of baseball, and I have a hard time caring about such things. What drew me in was the way players are traditionally chosen in baseball. Professional scouts, who are quite experienced in baseball, will evaluate a player based on everything from their statistics to how pretty their girlfriend is.

How in the world could you evaluate a player on whether they had an attractive girlfriend? This was part of the intuition the scouts would use to indicate a player's confidence.

The A's general manager tries a different tactic. Could you apply economic theory and create a formula that would boil down all of the metrics for a player and create a single number to evaluate them? And can the movie's makers take such a dry topic and make it interesting, as Aaron Sorkin did with The Social Network, 2010's Best Picture.

Well, you can judge that last bit for yourself. I thought it was very good (and beautifully photographed as well).

How about the Yocto Project? Can we as leaders boil all those statistics down to a single number to tell us the health of the project? I'd like to think we do.

Meet the Weighted Defect Density:

 

This is just a snapshot I grabbed from the end of https://wiki.yoctoproject.org/wiki/Yocto_Bug_Trend - you can see all kinds of other statistics in there as well. But this is the one I look at first when I want to know how we're doing. TO compute it, we eliminate the bugs which are not defects (there are enhancements and features tracked in Bugzilla as well) and then weight the open bugs by their severity and track this number over time.

This single trend chart gives us a lot of insight into the project. It helps us to ask more questions about what is going on, to drill into other data and to potentially change course. Do we think we're going to hit our goals for the release? Do we need to stop development work and focus people on bug fixing for a while? Maybe we need to stop testing so much and work on fixing bugs. Or maybe the line is lower than we expect it to be and we should be doing more testing.

Using a Weighted Defect Density in a project is not a new idea[1]. I first heard about it and used it way back in the early 1990s. But it has proven to be a good indicator of Yocto Project health and helped us make informed decisions.

In Moneyball, the hero played by Brad Pitt says his ultimate goal is to change the way the game of baseball is played. He sounds like he could be on the Yocto Project. We're trying to change the way the world develops devices. Time will tell if we're right.

 

[1] Robert Baetke, an associate at Sequent Computer Systems learned about the Weighted Defect Density metric at a talk given about how Boeing developed the 787 aircraft. He brought the tool to Sequent and employed in there, and I am very grateful for his contribution to my way of thinking about development.

Using Amdahl's Law for Energy Efficient Performance Estimation?

January 26, 2012 - 4:24pm

While trying to find an answer to my previous question, I stumbled across the paper "Extending Amdahl's Law for Energy-Efficient Computing in the Many-Core Era" (Computer, Dec. 2008, pp. 24-31) by Dong Hyuk Woo and Hsien-Hsin S. Lee (Georgia Institute of Technology). The title had me thinking that this might be an investigation into finding a metric or upper bound on how energy efficient an application could be. It didn't quite turn out to be that simple, but the findings are interesting.

The authors look to evaluate which of three possible processor core architectures might be best for parallel execution that minimizes energy consumption. The three model core arrangements are 1) multi-core (several large processing cores on a single chip), 2) manycore (lots and lots of simpler, more power efficient cores), and 3) a combination of a single large core with many simpler cores. The first is like the current dual-, quad-, and hexa-core processors, the second is akin to a GPU, and the third is a hybrid conglomeration of large core sitting on a GPU.

For the purposes of the model formulas, the maximum power consumption of a single large core is normalized to 1 and the power consumption of an idle processor is an added variable, k. For the first architecture, the new variable is used in the traditional Amdahl's Law formula as a multiplier to the serial percentage of time multiplied by the (n-1) idle cores. Some simple algebraic manipulation and the authors generate a formula for estimating the average power consumption, in watts (W), for a parallel application with n cores and the stated percentages of parallel and serial work. A similar derivation is done for the manycore model with the power consumption per simple core being 0.25 of the large core. With the hybrid model, the assumption used to derive a corresponding formula is for the large single core to handle the serial execution and the simpler cores do the parallel work.

Since a measure of the watts consumed is provided by the model, the authors then compute performance per watt (Perf/W) by computing the original Amdahl's formula divided by the formula to compute W. In order to compare the three model to each other, a power budget is imposed, which sets the number of cores available for each model.

The conclusions drawn from comparing the model with various numbers of cores and fractions of parallel execution of the overall execution time are probably the most interesting part of the article. For example, the first result reported is that to achieve the highest Perf/W value in the multi-core model, the parallelization must scale linearly. If the application doesn't scale linearly,the processor (model) must dissipate more energy than the serial version since the idle power of the extra cores scales linearly.

The ultimate result of the paper was that the hybrid model, one large core and many small cores, was the most power scalable. The manycore option does well with high amounts of parallelism and lower power budgets (fewer total cores), but as that budget increases, the number of simple cores increases and the effective serial execution performance does not. The hybrid model, with the single large core in place of several simpler cores, can more efficiently handle the serial portions of the execution (than one simple core out of the dozens sitting idle).

As I was reading the paper I could identify which was the model of current standard multi-core processors available in abundance today. The manycore model could easily be a GPU or MIC accelerator by itself. The hybrid model suggested the combination of a manycore accelerator and a dual-core processor (in the absence of  heterogeneous core chips). I wondered where vector hardware fits into the three models. Considering just the vector registers alone might suggest it would be an instance of the manycore model. However, these registers are part of a larger core, which makes me think of the hybrid model. Maybe they are a second level of parallel execution that isn't accounted for in the three models.

It's a good paper. But I have a couple of quibbles. First, the only way that parallel execution on the multi-core model underachieves the serial equivalent execution is if the sequential code is run on a single core system. A later comment in the paper makes me think that this is the assumption, but it's not too clear. This assumption is not valid in the real-world. For a true apples-apples comparison, the serial code needs to be run on a multi-core processor, too. If that were the case, I contend that the parallel execution consumes less energy.

For example, assume that we have an execution time of 10 time units (let's call them moops) . On a quad core processor running the serial code we would have one core running full speed for 10 moops and the other three cores generate an aggregate 30 moops of idle consumption. If the algorithm is 50% parallel, we would have 5 moops of  full power consumption in serial, 5 moops of full consumption in parallel across four cores, and 15 moops total of idle consumption. Even if the code is 10% parallel there would only be 27 moops of total idle consumption. Any level of (perfect) parallelism is going to prove to consume less energy than the serial equivalent on the same system. Am I missing something?

Note that I included '(perfect)' at the end of the previous paragraph. There will always be overhead in parallel computations and this will expand the execution time of the parallel portions and, consequently, the full consumption time of the execution (e.g., the 50% parallel portion above might require 5.4 moops of full consumption).

Second, Amdahl's Law is an estimate of speedup. Speedup is a dimensionless number. That is, I divide the execution time of the serial code with the time of the parallel execution to get a simple  number since the moops of the two quantities cancel each other out in that calculation. If I need 10 moops of serial time versus 6.35 moops of parallel time, I get a 1.57X speedup. 1.57 whats? ('X' is not a unit.) Speedup is a metric of relative performance, but it's not what I really think of when I think of performance.

To me "performance" is more absolute. Typically this is some countable quantity like number of transactions, floating-point operations, or feet traveled. It can be associated within a time unit measure, too, like transactions per moop, floating-point operations per second, or furlongs per fortnight. Thus, the metrics of transactions per watt or flops per watt or feet per watt make sense to me. Improvements that raise the performance value or lower the watt value show a trend in the right direction for achieving better energy efficient performance.

I'm still not able to quite wrap my head around the efficacy of speedup per watt (or even speedup per joule, which is also used in the Woo and Lee paper) as an absolute measure of energy efficient performance. It may be that I'm reading too much into this and the metrics are simply used to compare the three architectural models described (within the assumptions given). Perhaps it is simpy just a model after all.

Meshcentral.com - Now with Pogoplug support!

January 25, 2012 - 12:38am

A few weeks back I went on eBay and got myself two Pogoplug devices. Very nice little media and file sharing devices, you plug storage in the USB ports and you get access to the data anywhere on the internet. The devices are not expensive at all and very functional. One of the things that interested me in the device is that you can enable SSH on them, login and install and run more software. Of course, the Meshcentral peer-to-peer agent would be a great target for such a device. You can leave your Pogoplug on all the time and then, use it as a low-power presence on the network to wake up other computers, monitor sleeping Intel AMT computers, etc. Best of all, you can use both Meshcentral along with the original Pogoplug software.

So, earlier today I downloaded the proper cross-compiler. I am really getting the hang of this, it took me about an hour to compile the mesh agent and get it running on the device! I also added the new mesh agent to the list of available agents on Meshcentral.com. Now, this is not for everyone just yet, you need to have a good idea what you are doing with Linux and the command prompt. I also did not research how to auto-start the mesh agent yet when the device boots up. Regardless, enable SSH on the Pogoplug web site in the settings and security menu, then I log in and remount the root file system and create a new folder with these commands:

mount -o rw,remount /
mkdir /usr/local/mesh
cd /usr/local/mesh

I am then ready to cut & paste the agent download and launch code from the Meshcentral.com account page (hit the Install link). After about a minute, the device will show up on Meshcentral.com and you can access file, get the command prompt, etc. Obviously, no remote desktop available.

That's it for now. Have fun with your new Pogoplug features!

Ylian
meshcentral.com

Getting “Down to the Wire” for the Intel AppUp developer challenge: Web Apps Edition

January 24, 2012 - 6:12pm

The January 30, 2012 deadline for the Intel AppUpSM developer challenge is fast approaching. In case you haven’t read the fine print in the Official Rules (and you should!), I want to reiterate them and make sure everyone knows the nuances of that deadline.
Basically, all apps that have been entered must also be validated by January 30, 2012, to be eligible for the chance to win $250 USD in cash.

read more

How to run the SCS Discovery Tool

January 24, 2012 - 1:44pm

Do you have a system that you believe is Intel(R) AMT capable and you are trying to run  samples but are getting an errors?  Here are some tips on how to make sure your systems *is* Intel AMT capable and is also capable of running the samples in the SDK

1.  Download and run the SCS Discovery Tool in a CMD window:

  • >SCSDiscovery.exe /Output file test.xml SystemDiscovery /NoRegistry
  • test.xml will be a debug file - look for another file named with the FQDN of your computer. Here is a snippet of the xml file and some of the key fields to look for:

2. Open the xml file from running the Discovery tool an look for the following lines:

  • <AMTversion>7.1.4</AMTversion>
  • <MEIVersion>7.0.0.1144</MEIVersion>
  • <FWVersion>7.1.4.1068</FWVersion>
  • <IsAMTConfigured>true</IsAMTConfigured>

For root-causing issues, it is good to know what AMT version/ FW Version we are working with and if AMT has been configured. (And that the correct FW version is installed.)

3. Since most questions appear due to SOL/IDER and KVM, let's take a look at the following entries:

  • <IsAMTKVMSupported>true</IsAMTKVMSupported>
  • <IsAMTIDEREnabled>true</IsAMTIDEREnabled> (IDER must be enabled )
  • <IsAMTKVMEnabled>false</IsAMTKVMEnabled>
  • <IsKVMEnabledInBIOS>true</IsKVMEnabledInBIOS>
  • <IsKVMSupportedInBIOS>false</IsKVMSupportedInBIOS> (Not a reliable indicator!!)

<IsAMTKVMSupported> True if the KVM redirection interface is supported in the Intel AMT Firmware.

<IsAMTIDEREnabled> IDE-Redirection must be enabled in the bios in order to use the KVM feature using the Redirection ports.

<IsAMTKVMEnabled> True if the Keyboard Video Mouse (KVM) redirection interface is enabled in Intel AMT  (This refers to the listener and if you have enabled Intel AMT but have not yet configured your KVM connections, this will show up as false.)

<IsKVMEnabledInBIOS> True if KVM redirection is enabled in the MEBx of the Intel  AMT device

<IsKVMSupportedInBIOS> True if the BIOS of the platform supports KVM redirection.  This entry is not always reported correctly - as you can see on my system it indicates false.  But my system is KVM capable.

It is important to note that the Discovery tool may indicate that your system can do KVM even if you do not have the right graphics card - that's why you check for that first. See this blog for more KVM troubleshooting.

 

Meshcentral.com - Improved MacOSX support

January 23, 2012 - 9:47pm

One of the problems I have been facing over the last few months was around the Mac OSX mesh agent. It just did not work right and so, over the last two weeks, I really made a big effort to improve it. Today, I released version 1.54 of the agent that seems to work much better. First, the remote desktop feature is back into the mesh agent. It's been out of over two months. So you get the same, entirely web based remote desktop that is already available on Linux and Windows. The mesh agent is also improved with all the latest features and bug fixes.

One of them problems the MacOSX agent still has it that it can't seem to resolve the DNS name of meshcentral.com correctly. So in this version and for MacOSX only, the IP address is hard coded into the mesh agent.  I will need to work to figure out that is causing this problem.

Anyway, Mac users, please try the latest agent and let me know what you think!

Ylian
meshcentral.com

Upcoming February Technical Presentation

January 23, 2012 - 4:50pm

Happy New Year!

A technical presentation has been scheduled for February 15, 2012: Future-Proof Your Application's Performance With Vectorization.  This presentation is for C, C++, and Fortran developers, and will help you get started understanding and evaluating vectorization using new technologies such as Intel® Cilk Plus, pragma SIMD and the Intel Compiler’s Guided Auto Parallelization report.

For the complete presentation abstract and registration details please visit http://software.intel.com/en-us/articles/intel-software-development-products-technical-presentations/

Intel AppUp Application Labs coming to GDC!

January 23, 2012 - 12:20pm

The Intel AppUpSM Application Labs will be in San Francisco!  Join us at the Game Developers Conference, March 7-9, 2012 to learn how to create exciting experiences with the Intel AppUpSM developer program.  Listen to Intel Technical Marketing Manager Amar Kona discuss game development, HTML5 and how to develop for the Intel AppUpSM center! 
 
There is no registration for these Application Labs but you must have a GDC pass to attend.  C

read more

Accessing Intel® Power Gadget 2.0 library in C++

January 21, 2012 - 2:25pm

With the release of Intel® Power Gadget 2.0 there is now externally callable API’s to extract power information within sections of code. The API layer is a set of libraries and dlls that can be called via C/C#/C++ or via JavaScript and offers the flexibility to build the tool within code sections of an application. Intel® Power Gadget 2.0’s main engine is written as ATL COM that supports Javascript, C++, and C#. The gadget itself is a sample javascript code to use the library. In order to look at the source, rename the “CPUPowerData.gadget” to “CPUPowerData.zip” and unzip it. You should be able to see the source to see how the APIs are used. In this article, a sample code is provided to illustrate how to use the library’s API through C++. Another article to use C# is planned in the future. The sample project can be downloaded here.

Initializating COM

The beginning of CppSample.cpp starts with COM initialization as follows so that COM is initialized before _tmain and de-initialized after _tmain is done. EzPwrLibrary.dll itself should be imported as a header.

Initializing COM

Setting up parameters
  • Create a smart pointer: create an interface to the library - "IEzPwrCtrlPtr pEzPwrCtl" followed by instantiation -"pEzPwrCtl.CreateInstance(L”EzPwrLibrary.EzPwrCtl”);"
  • Log file: The library takes a log file name and append the time stamp to the log file name. In order to specify the file name, assign the file name to "ExportFileName" property. Usually, full path to the file is specified. In order to get the file name, use "GetExportFileName" or "GetExportFileNameExtended" to get the exact file name with the time stamp appended. In order for GetExportFileNameExtended to succeed, the logging should have been started by setting "Logging" property to 1. Setting "Logging" property to 0 stops the logging.
  • Sampling Resolution: The gadget itself is updated once every second. But you can specify much finer sampling resolution for the logging by calling  "Reset(millisecond)" method. It is not guaranteed to get the specified resolution due to thread scheduling, but it will try to get up to the resolution. It is recommended to set this to 50 ms.

Setting up Parameters

Getting Power and Frequency Information

All the methods in the library are non-blocking calls, but the actual data is updated once per second. The log however, has much finer resolution as specified in the "Reset" method.

  • Multi-socket support: The library supports multi-socket systems and can get the power and frequency information per socket. You can get the number of sockets in the system by calling "GetNumSockets" method.
  • Frequency: In order to get the base frequency (maximum frequency without turbo,) call "GetMaxFreq" method. Be aware that modern processors including Penryn, Nehalem, Sandy Bridge, and Ivy Bridge can not only throttle down the frequency to save power, it can go higher than the base frequency temporarily for performance. It is very important to understand the frequency is not fixed to the base frequency to properly understand power / performance. CPU utilization alone is not going to tell the whole story - x % of CPU utilization really doesn't mean much without the running frequency information at the moment. "GetFrequency" method gives the average frequency from all the sockets, and GetSocketFrequency(int iSocket) gives individual frequency for each socket. If there is only one socket, both methods have the same result.
  • Power: There are 2 ways to get power - total power from all the sockets (GetPackagePower) and individual sockets (GetSocketPower(int iSocket)). GetPackagePower is just a sum of all GetSocketPower.

Getting Power and Frequency

Clean up

Be sure to stop logging and close & release the interface.

Clean up

Team BPN does not cheat!

BulletProof Nerds is officially recognized by the Central Outpost as a genuine gaming organization.