Archive for February, 2012

Meet Us at Mobile World Congress – Feb 27th-March 1st in Barcelona!

How to Get the Most out of Your PC. More Powerful, More Useful, More Fun! Check it out at Mobile World Congress in beautiful Barcelona, Spain where we will showcase our PC Store – the AppUp Client, applications like Black Eyed Peas will.i.am´s willpower360 (follow him around the world and see his performance and fotoshoots in 360 view), MixMan to transform your PC into a mixing desk and of course one of my all-time favorites Fruit Ninja! Get to know the Intel AppUp people and find out the opportunities we are offering to developers like our Black Belt program, AppUp funding or basic information about SDKs, online/offline support, tools and events. You can either come to our booth in Hall 7 B28 and/or attend one of the following events – the easiest way to keep track is on lanyrd – the social conference directory: Monday, 27.02. – AppLabs in Hall 6 Sala A 14.00-15:15 Intel AppUp Overview and App Development on html5 15:50-16:45 html5 Deep Dive 17.00-17.30 Native Deep Dive 17.30-19.30h AppUp Aperitivo in Hall 7 – join us for informal conversations and networking Tuesday, 28.02. – Intel, the Platform of Choice at Casa Capell 13.30 Bus transfer from MWC to Casa Capell 14.00-14.30 Welcome coffee, snacks 14.30-15.30 Overview and roadmap: Ultrabook, Android, Windows 8 15.45-16.30 ISV and developer offerings 16.30-17.30 Demos, technical consultations and networking opportunities 17.30-18.30 Cocktail party and prize draw 18.30 Bus transfer to Barcelona city center read more

Reducing cache misses in your application on Sandy Bridge and Atom Architectures

I have had enough questions on some articles I wrote for the Intel64 and IA-32 Architectures Optimization Manual that I decided to port these articles over to blogs so I can dynamically respond to customers and update the blogs.  This cache line replacement analysis is one of the articles I am porting from the optimization manual with some additional edits and notes. When an application has many cache misses, it is a good idea to determine where cache lines are being replaced at the highest frequency. The instructions responsible for high amount of cache replacements are not always where the application is spending the majority of its time, since replacements can be driven by the hardware prefetchers and store operations which in the common case do not hold up the architecture pipeline.  This means that a cold area of code can trash your cache causing heavy cache misses in other areas of your code and costing performance. Through traversing large arrays or data structures, developer’s can unknowingly cause heavy cache line replacements. Required events (Sandy Bridge Architecture) L1D.REPLACEMENT – Replacements in the 1st level data cache. L2_LINES_IN.ALL – Cache lines being brought into the L2 cache. OFFCORE_RESPONSE.DATA_IN_SOCKET.LLC_MISS_LOCAL.DRAM_0 – Cache lines being brought into the last level cache (LLC) Usages of events: Identifying the replacements that potentially cause performance loss can be done at process, module, and function level. Do it in two steps: • Use the precise load breakdown to identify the memory hierarchy level at which loads are satisfied and cause the highest penalty.  That study is described by the following links: Nehalem = http://software.intel.com/en-us/blogs/2010/09/30/utilizing-performance-monitoring-events-to-find-problematic-loads-due-to-latency-in-the-memory-hierarchy/ Sandy Bridge = Intel64 and IA-32 Architecture Optimization Manual • Identify, using the formulas below, which portion of code causes the majority of the replacements in the level below the one that satisfies these high penalty loads. For example, if there is high penalty due to loads hitting the LLC, check the code which is causing replacements in the L2 and the L1. In the formulas below, the nominators are the replacements accounted for a module or function. The sum of the replacements in the denominators is the sum of all replacements in a cache level for the process. This enables you to identify the process, module and function that is causing the majority of the replacements. L1D Cache Replacements %L1D.REPLACEMENT = L1D.REPLACEMENT / SumOverTheProcess(L1D.REPLACEMENT ); L2 Cache Replacements %L2.REPLACEMENT = L2_LINES_IN.ALL / SumOverTheProcess(L2_LINES_IN.ALL ); L3 Cache Replacements %L3.REPLACEMENT = OFFCORE_RESPONSE.DATA_IN_SOCKET.LLC_MISS_LOCAL.DRAM_0/ SumOverTheProcess(OFFCORE_RESPONSE.DATA_IN_SOCKET.LLC_MISS_LOCAL.DRAM_0 ); On Atom architecture you can accomplish the same analysis through using the following events: L1D Cache Replacements Event = L1D_CACHE.REPL L2 Cache Line Replacements Event = L2_LINES_IN.SELF.ANY

Vectorization Series, Part 2- Who Can Use It?

In my last blog , I introduced the concept of vectorization, which is parallelism across data elements in a register inside a single CPU core. It’s a topic that I am very excited about this year, and in this blog I will expand on the subject to address what types of applications can take advantage of vectorization. ————————— But first, an update on my upcoming webinar on vectorization – due to overwhelming demand, registation for the first session on Feb 15th is now closed, and we are adding a second session on Feb 22nd at 9AM PST. At this session my colleague Wendy Doerner and I will give a high-level overview of vectorization and methods for implementing it. Attendees will also have the opportunity to request a followup from an Intel vectorization expert! To view the abstract or register, click here: https://www1.gotomeeting.com/register/662285889 . ————————— And now, to answer the question of who can use vectorization: Vectorization is implemented using special instructions, called SIMD (Single Instruction, Multiple Data) instructions. Developers can access these special instructions in a variety of ways (discussed in the webinar), for example, through their compiler, or a high-level language construct such as Intel® Cilk™ Plus . Each Intel processor supports a particular version of a SIMD instruction set. For example, 2nd Generation Intel® Core™ Processors implement the Intel® Advanced Vector Extensions (AVX) instructions. Previous processors implemented versions of the Intel® Streaming SIMD Extensions (SSE) instructions. These instruction sets perform operations such as matrix and vector math, floating point processing, and string processing. They are designed to be applied when the above types of operations are being performed in loops, generally on arrays or vectors of data. They work by packing multiple data elements into registers and then performing a single operation on all the elements at the same time. So the types of applications that can take advantage of vectorization are the ones that are performing repeated computational activity on large sets of data. The 5 most common areas where vectorization can be applied are the Scientific, Engineering, Media, Graphical, and Financial domains. However, other applications may also be able to vectorize if they are performing the kinds of activities described above. To find out more about how to vectorize, view the webinar or stay tuned for more info!

1 million new jobs from robotics industries

I was intrigued by the teaser for the IEEE- USA Today’s Engineer story ” The Real Steel: Robotics Careers Ready to Boom “. It cited a market research report that claimed there would be 1 million new jobs added due to the robotics industry over the next 5 years. Many of these jobs will come from obvious sources like engineering, software, and manufacturing. To me, the most surprising  job that was mentioned in the article was for psychiatrists. The reasoning for such positions was to ensure robots will ”have a mental picture of what people are doing around it”. Psychiatrists would observe how humans interact with robots and be able to suggest better behavior or design changes to improve such interaction. (When I read this my first thought was about Dr. Susan Calvin  and the Three Laws of Robotics or picturing Robbie the Robot laying out on a couch talking to his therapist.) There was also a reference made that indirect industries (restaurants and service industries) would also benefit with expanding numbers of jobs. I can understand the need for engineers and programmers to develop working models of robots, but I would have thought that the advent of robots would start taking jobs from workers in many of the service industries. Won’t we soon have robot waiters, robot salesmen, and robot butlers? I don’t want to see someone lose their job, but if we have autonomous robots, I think that there will be more jobs lost (to robot replacements) than there will be jobs created. Of course, that will all depend on how well the psychiatrists are doing their job to influence designs and perceptions to be more readily accepted by the public. If we’re going to start with more household automation (like all the cleaning robots in the 1947 short ” House Hunting Mice “), it might be easier to introduce other service industry robots nito our modern society. The article, being focused on careers, ends with some helpful advice about how you can get into the robotics industry. There are many different industries that will be touched by robotics and you may need to specialize in something other than engineering or programming. For example, to design and create medical robots, you should have some experience or knowledge about biomedicine. All in all, if you’re interested in robotics, this sounds like a cool opportunity. I have probably watched too many SF movies with robots in them and will likely be disappointed with the current state of the technology myself. I don’t think we’re getting close to entering the world portrayed in Magnus, Robot Fighter . However, my great grand nieces and nephews could be very close in their lifetimes.

Free Webinar: Learn How to Effectively Manage your Social Media Channels with HootSuite

Join us this Friday for a free introductory webinar on social media management hosted by HootSuite! If you are currently using – or planning to use – social media as part of your marketing mix to increase your customer base, this would be a great webinar to attend. The live webinar is open to registration for Intel® Software Partner Program members in North America. You can register through the email link that was sent on Friday, Feb 10th (email subject: “Learn How to Effectively Manage your Social Media Channels with HootSuite”). The webinar replay will be made available to watch on-demand to all members after the event. Date : Friday, February 17, 2012 Time : 11am- 12pm PST Agenda : Introduction to social media and various social networks Social media trends How organizations are using social How social will benefit you Presenter : Vicky Truong, HootSuite’s Social Media Coach Make sure to check your email for the registration link! We look forward to seeing you in the webinar. Prior to joining the webinar, please make sure to sign up for a HootSuite account. Note : This webinar is part of a pilot to gauge the level of interest in adding social media management tools into your member resources. If you are unable to view the webinar due to your location, but are interested in this topic, please let us know in the comments!

B2B Marketing Tips For Popular Social Networking Sites

For more social media management tips, join us for a free webinar with HootSuite on Friday, February, 17 at 11 a.m. PST. This webinar is open to Intel® Software Partner Program members in North America. Find the registration link in your email inbox (subject: “Learn to Effectively Manage your Social Media Accounts with HootSuite”) Sign up for the Intel® Software Partner Program to receive email about upcoming events. Social media tends to get a bad rap in the B2B space. You may have heard from colleagues that Twitter is all about what people had for lunch, and Facebook is the place where you go to make sure your career is better than your high school ex’s career. Thank goodness for LinkedIn; without it B2B folks would be completely left out of social networking, right? In reality, all social networking sites hold potential for B2B marketers. Each site has its own personality and needs a strategy unique to the audience and community activity on those sites. Consider this: Social media was the leading “emerging channel” for lead generation in 2010, according to Unisfair. The same study found 61 percent of U.S. marketers use social media to increase lead generation. It’s only gone upwards from there in terms of potential. In March, Salesforce.com acquired Radian6 , bringing the potential of the social web into lead generation. Even more recently, Facebook issued its long-awaited IPO, solidifying its place as the globally established social platform. Facebook With 845 million users worldwide, Facebook has grown so large that it’s difficult to think of it as a private community. It’s also not your college kid’s Facebook anymore. More than 35 percent of users are ages 35 and above, according to the site’s spring demographics report. So, chances are your future leads are spending time here. There are several strategies for networking on Facebook. Your brand might consider creating a page where users can choose to associate themselves with you. This is true for many consumer brands, as well as a growing list of B2B companies who seek out targeted audiences. Also, consider a highly targeted Facebook ad with an evocative headline that drives traffic to your website. Careful keyword selection means the ad will only appear to people with interests aligned with your company. You may wish to try starting a page on Facebook for professionals in your industry and pointing your ad here. Like a LinkedIn group, this community would be a forum for your potential clients to exchange ideas with limited marketing from you, but, over time it would give you a real-time glimpse into the minds of your clients and industry. Twitter With its heavy emphasis on searchability, Twitter is a great way to keep up with news in your industry and to hear real-time feedback from your customers, especially during events like industry conferences. But how do you sort the tweets from the chaff? If you are not fortunate enough to have a paid Salesforce and Radian6 tool at your company, use Tweetdeck and set up a search for your company, and particular hashtags such as #HealthIT, that are unique to your industry, competitors, or even influential folks in your industry. Follow people who could be possible leads and tweet or RT good bits of information. Use a tool like Follower Wonk to search for users in your industry. Blogs As an inbound marketing channel, blogs cost far less than outbound, often paid, marketing. Blogs also greatly increase the search engine optimization (SEO) for your site while creating excellent content for your clients. Learn more about SEO from Google’s Search Engine Starter Guide. Consider hiring a copywriter to create blog content if you’re not comfortable doing so. Good content is worth the money paid to a professional writer–your web content is often your potential customer’s first impression of you. Make that impression count, then be sure to measure the increase in inbound links you receive as a result of a successful blogging program. LinkedIn A dominant social network like Facebook, LinkedIn has dozens of groups for B2B folks to network and exchange information. Consider starting your own group for current customers of your product to exchange ideas or network with each other. This would be a good place to collect testimonials and customer service inquiries. You might consider starting a group for individuals in your specific profession. Like the Facebook page, this would be an excellent place to get into the heads of future leads. Google+ A relative newcomer on the social networking scene, Google+ seeks to bring together popular features like photo sharing and commenting and make them easy to access for Google aficionados and those who prefer Android mobile devices. In addition, Google+ has added a unique feature that is perfect for B2B networking: Circles. Companies who open brand pages on Google+ can invite users to place themselves in Circles defined by their interests. It’s a great way to allow your audience to learn about your company and then self-select what they are most interested in. Then, you can send communications and messages tailored to the needs of individuals in each Circle. There are many more resources online regarding lead gen and social media. The purpose here is to provide an overview of what’s possible. If you are serious about social networking on behalf of your company, you may want to follow blogs that cover this topic regularly . Please subscribe to our RSS feed for more blog posts on this topic and leave a comment with your social media questions or tips.

Learn about the Intel AppUp SDK at our webinar!

Join the Intel AppUp team for a free 1 hour webinar on the Intel AppUp TM SDK on Thursday, March 22, 2010 at 12 noon PST and learn how to create differentiated apps using In-app upgrade and In-app unlocking APIs offered by the AppUp SDK.

Intel Level Up Game Demo Contest – What gets our judges out of bed in the morning?

Picture yourself in ten years. You’ve been making games for a decade. You’ve been to the wars, returned with some successes, some failures (trophies and scars). But you wake up and…what is it that motivates you out of bed? The Level Up Game Demo judges all have to get out of bed in the morning, but each has a different motivation for doing so. So we put them to the question for you and come back with their thoughts. Blair Herter, G4TV “While there’s not any one specific thing that gets me out of bed in the morning, I can say that in almost a decade of covering the video game industry I’ve never woken up and thought ‘Man, I have to go to WORK today’. That is a very good thing.” John Romero, Loot Drop, Inc. “Working with a great team that’s inspired to do their best every day, and have fun in the process.” Chris Taylor, Gas Powered Games “For me it’s a chance to do something new, something the world has never seen before.” Jeff Vogel, Spiderweb Software “The persistent need to buy more food for my children. Alas, after 17 years, a lot of the thrill of creation is done. Now it’s just a job, albeit one that is excellent and rewarding in many ways.” Wolfgang Engel, Confetti Special Effects, Inc. “That I can render a scene so well that it creates excitement and a smile on the face of the people who play the game :-) ” Andy Schatz, Pocketwatch Games “When I was 7, I used to make games in the living room with my friends. We made games about the things we were passionate about. When I was 25 I commuted to work, sat in a cubicle, and made games that were supposed to make money. They didn’t. Now that I’m 33 I’m making games in the living room again. They are games that I’m passionate about. They are games that can support my family. The thing I love about the game industry is that passion can drive productivity. I can make the games I want to make, and someone out there will share an interest in them.” What about you? What gets you motivated? Leave a comment and let us know!

Show 18 – Top Application Code Signing Issues and Solutions

The Intel AppUp show for developers “Show 18″: in this segment of SkypeUp, Host Rhonda Peters interviews Meghana Rao, AppUp Technical Marketing Engineer. During this segment, Rhonda chats with Meghana about some of the come issues and solutions for the code signing process for application submission. Meghana explains in detail the process of applying for a code signing certificate and exporting the certificate and signing the application. This show is definitely a must see, especially if you are considering submitting an app to the Intel AppUp(SM) center!

Can I still get an Energy Efficient Free Lunch?

When the semiconductor industry was turning to multicore chips and lowering clock rates, Herb Sutter wrote a seminal article entitled ” The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software .” Up to that point software developers relied on the increasing clock speeds (the “free lunch”) to give their software a boost in the next generation of processors. Mr. Sutter was serving notice that this practice was over and programmers would now need to turn to parallel programming to get improved performance. I got to thinking about this the other day and contemplated on whether or not this applied to more than just execution speed performance. Specifially, I was wondering if we’re still in the free lunch phase with regards to energy efficient performance or if developers can still coast on their laurels since new hardware continues to become still better at using less and less energy. I arrived as this existential conundrum as I was looking over an internal presentation for an upcoming processor release from Intel. One prominent feature that was touted was the increase in energy efficiency to be realized by the new chip. Better technology has reduced the energy leakage within processor circuits. I imagine that there is more research and development (or already has been such R&D) that can be and will be done in the near future to get even better energy performance from processors. If that is the case, why should software developers be concerned with programming applications that actively conserve power? (If you’re a laurel coaster, stop here, don’t read the rest of this post, and go check out your favorite online comic strip.) For those of you that are still reading, let me first say, you can be sure that your competitors are taking steps to write software that uses the processing cores more efficiently. In terms of performance, the fastest software will be the one that sells more copies. Energy efficiency has become another dimension for comparing competing software products. In some cases, it might even be the more important dimension for a consumer’s choice. Mobile devices have become nearly ubiquitous (or so they tell me). After some amount of use these devices need to be recharged. If your application runs down the stored battery power faster than an alternative product, users will gravitate to that competing software. Device owners have already spent a pretty penny on their current hardware.  It is highly unlikely they are willing to wait months to upgrade to a model with a better energy conserving processor in order for your software to not drain the battery as quickly. If this is your strategy for energy efficient performance, you’ve already lost the sale. Even if users would be willing to wait, they’ll be using something else and getting familiar with that software. Besides, the better energy efficiency of a new processor will also benefit your competition’s software. Secondly, it’s really not all that hard to program for energy efficient performance. Many of the things you would already do for execution optimization and performance (use better algorithms, multiple threads, compiler optimizations, etc.) will directly benefit the power consumption rate of your software. For more techniques and ideas on how to upgrade your applications to be more energy efficient, visit the Intel  Power Efficiency Community . Sitting around and waiting for the next helping of improved energy efficient hardware “free lunch” to make your software better is easy. (Heck, you might even be able to surreptitiously take time off from work to practice your drumming at the beach.) But if you’re interested in making your software the best that it can be and the most desired products to consumers, be proactive and start looking at how to improve your application’s power considerations today. There will be time for beach drumming after you make that first million dollar$.