# Presentation: 319600

## Numerical Libraries ProjectMicrosoft Incubation Group

- Mary Beth Hribar
-  Microsoft Corporation
- CSCAPES Workshop
- June 10, 2008

- Copyright Microsoft Corporation,
- All Rights Reserved

## Microsoft Incubation Group

- John Manferdelli

- OS, Resource Management

- Security, Partitioning, Virtualization

- Application & Libraries

**Incubation Group**

- Microsoft Research

- Research Organization

- Copyright Microsoft Corporation, All Rights Reserved

## Many-Core Collaboration

- Microsoft effort to realize the performance of many-core architectures in their products
- Widespread internal and external projects to produce complete parallel programming software solution to customers

- Copyright Microsoft Corporation, All Rights Reserved

## Many-Core Software Solution

- Copyright Microsoft Corporation, All Rights Reserved

## Numerical Libraries Project

- Project in Incubation Group starting Jan, 2008
- Investigate numerical libraries for single node many-core architectures
- Develop an initial parallel numerical library specifically for Microsoft platforms
- Demonstrate use of library in parallel applications
- Contribute to adoption of Microsoft platforms on future many-core and HPC architectures

- Copyright Microsoft Corporation, All Rights Reserved

## Tasks

- Investigate small set of functionality
- Implement routines for Microsoft platform
- Consider design of interfaces
- Analyze performance

- Copyright Microsoft Corporation, All Rights Reserved

## Functional Areas

- Investigate “core” math functions
- Initially target dense and sparse linear algebra
- Will be looking at other areas
- Graph algorithms
- Random number generators
- FFTs
- Applications drive priority of routines to implement

- Copyright Microsoft Corporation, All Rights Reserved

## Implementation

- Implement libraries for Microsoft platforms
- Write versions for native and managed code
- Native: C++
- Managed: C#
- Evaluate parallel programming models

- Copyright Microsoft Corporation, All Rights Reserved

## Interfaces

- Investigate the design of managed code interfaces
- “Expert” interfaces allow users to access all algorithmic and performance parameters
- “Productivity” interfaces allow users to ignore low level details

- Copyright Microsoft Corporation, All Rights Reserved

## Performance

- Analyze performance of library routines
- Scaling performance of algorithms
- Performance of native vs. managed code
- Performance of programming models
- Demonstrate performance of libraries in applications

- Copyright Microsoft Corporation, All Rights Reserved

## Challenges

- Scalable performance on range of many-core architectures
- Varying number of cores, memory bandwidth, layout, etc.
- Successive generations of hardware
- Small and large input sizes
- Target Microsoft software environments
- Existing libraries and parallel applications written in native code
- Libraries for Microsoft’s managed code environments may have security requirements which impact performance
- Potentially mixing programming models within one application
- Numeric accuracy and stability

- Copyright Microsoft Corporation, All Rights Reserved

## Collaborations

- Within Microsoft
- Evaluate early releases of programming models and runtime
- Gather application requirements and plan demonstrations
- Research groups in academia
- Share new many-core parallel algorithm ideas
- UTK, Berkeley, and looking for others

- Copyright Microsoft Corporation, All Rights Reserved

## Thank you!

- Copyright Microsoft Corporation, All Rights Reserved