Three Methods for Speeding up Matrix-Vector Multiplication
Matrix-Vector Data Structure Tutorial: The multiplication of a matrix and a vector is a common operation in applications such as 3D graphics games. Multi-threading the code will help performance, both on DP Xeon processor-based systems and hyperthread technology systems. This tutorial explains you how to speed up matrix-vector multiplication with SSE instructions, threading, and data re-structuring. Learn more about hyperthread technology in this thread data structure tutorial.

by Kiefer Kuah, Intel Corp.

Speeding up matrix-vector multiplication with SSE instructions, threading, and data restructuring

Single-instruction multiple-data instructions, threading, and restructuring data are three common optimization methods. The performance impact that these methods can make on matrix-vector multiplication was investigated here. The different implementations were tested on three hardware configurations and compared to the version written in C. All three methods resulted in measurable gains. As expected, while it resulted in gains on the Hyper-Threading–technology–enabled system and the dual-processor Intel Xeon chip system, the multithreaded version did not exhibit performance benefits on the uniprocessor system.

Introduction
The multiplication of a matrix and a vector is a common operation in applications such as 3D graphics games. We investigated a few ways to write the code for this operation and assess the performance of each version on a 2.8-GHz uniprocessor Hyper-Threading–technology–enabled Intel Pentium 4 processor system as well as on a 2.4-GHz Pentium 4 Xeon system.

Subscribers who liked this article also read:
The "Rich-Client" Advantage for .NET Web Services
by Dan Fineberg, enterprise/business marketing manager, and Gary Hayco...

If you're interested in this topic, these articles may be helpful:

For-loop threading methods
by Jeff Andrews, application engineer, Intel Corp. Explore differen...
Multiple approaches to multithreaded applications
by George Walsh, freelance researcher and writer. Intel Corp. The...
Combining Linux Message Passing and Threading in High-Performance Computing
by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel C...
Utilizing thread pools in performance-critical applications
by Blake Thompson, application engineer, Intel Corp. When using thr...
Multi-Threading for Experts: Inside a Parallel Application
by Sergey N. Zheltov, project manager, and Stanislav V. Bratanov, soft...

Related Jobs:

Web Developer Lead w/QA experience #780 - MD - Rockville - Management Systems Designers, Inc.
MSD is an employee-owned company of over 600 professionals who support...
Software Development Engineer in Test #151266 - WA - Redmond - Microsoft Corporation
We're not just about scheduling projects - we're the solution for mana...
Program Manager V #738504 - CA - San Jose - Cisco Systems, Inc.
Description This role will reside in the Worldwide Technical Operati...
Software Development Engineer in Test #151267 - WA - Redmond - Microsoft Corporation
We're not just about scheduling projects - we're the solution for mana...
Software Development Engineer in Test #151112 - WA - Redmond - Microsoft Corporation
We're not just about scheduling projects - we're the solution for mana...
Technical Project Manager Business Systems #39250 - FL - Tampa - HSBC Bank Usa
Technical Project Manager Business Systems Here are all the details f...
Software Development Engineer in Test #151264 - WA - Redmond - Microsoft Corporation
We're not just about scheduling projects - we're the solution for mana...
Software Development Engineer in Test #151269 - WA - Redmond - Microsoft Corporation
We're not just about scheduling projects - we're the solution for mana...
Software Development Engineer #132338 - WA - Redmond - Microsoft Corporation
MSN Search - Relevance Measurement SDE Relevance measurement is a hot...
System Engineer (III) / Analyst / Manager #362872 - CO - Colorado Springs - Zel Technologies, LLC
OB SUMMARY: System Engineer (III) / Analyst / Manager Functional Re...