opents for windows compute cluster server. overview introduction opents (academic) for windows ccs...

36
OpenTS for Windows OpenTS for Windows Compute Cluster Server Compute Cluster Server

Upload: elijah-harrell

Post on 26-Dec-2015

234 views

Category:

Documents


1 download

TRANSCRIPT

OpenTS for Windows OpenTS for Windows Compute Cluster ServerCompute Cluster Server

OverviewOverview

Introduction OpenTS (academic) for Windows CCS T-converter T-microkernel OpenTS installer Building T++ applications OpenTS SDK User documentation Demo applications Conclusion Proposals for the next step

IntroductionIntroduction

Porting OpenTS parallel programming system to Windows Compute Cluster Server Platform

Goals:• to port academic OpenTS version under Windows• to develop a number of test applications (demos, test suite)

Duration:• 10 months: 01.2006—10.2006

Over and Above the Plan:• Integration with Visual Studio 2005• T-converter improvements• Auto C call support

Out of scope:• some features of the OpenTS were not included into

academic OpenTS for Windows CCS

OpenTS (academic)OpenTS (academic)for Windows CCSfor Windows CCS

OpenTS (academic)for Windows CCS

OpenTS for Windows includes:• T-converter

• T-microkernel

• Installer for Windows

• Software development kit

• Integration with Visual Studio 2005

• User documentation and T++ language reference

• Demo applications

T-converterT-converter

T-converter

Ported on WindowsBased on OpenC++Updated for support of Visual C++ special

language constructionsUpdated for proper support of:

• “new” declaration:o int tptr p = new tval int [n];

• template classes:o vector<tval int> fa;

T-microkernelT-microkernel

T-microkernel

Platform Abstraction Layer (PAL) developed:

• contains system-related calls of WinAPI and POSIX interfaces

• provides multiplatform OpenTS kernel codeAssembler code was rewritten to support fast

context switching under Windows on AMD64 and x86 hardware platforms

OpenTS installerOpenTS installer

OpenTS installer

Installs Compute Cluster Pack SDK if it was not already installed

Integrates OpenTS with Visual Studio 2005 Automatically tests OpenTS operability Uninstalls OpenTS if it was not installed properly Based on Nullsoft Scriptable Installation System

(NSIS)

OpenTS installer UI

Building T++ applicationsBuilding T++ applications

Building T++ applicationsfrom command line

Using command line: t++ [options] [srcfile1 … srcfileN]

Options are:• /auto-c-call - allows T-application to call C-versions of T-functions. This

may increase T-application productivity

• /c - only compilation of source files without linking

• /dbg - make debug build. It allows debugger to obtain information about program symbols in the case of application crush

• /do - specify location for object files

• /not - build application in sequential mode, all T++ keywords are ignored

• /o - specify output executable

• /p - pass option to used C/C++ compiler

• /v - print commands before invocation

Building T++ applicationsin Visual Studio 2005 IDE

A new item in “New Project” dialog: OpenTS Console Application

A new item in “Add New Item” dialog: T++ File

Building T++ applicationsin Visual Studio 2005 IDE

OpenTS SDKOpenTS SDK

OpenTS Software Development Kit

Can be installed independently Contains OpenTS kernel source code Allows development of extensions to OpenTS Contains VS2005 project files for building of:

• T++ runtime library• Fast context-switching library• T-applications execution tracer• Several simple T-applications

Created with NSIS

User documentationUser documentation

OpenTS user documentation

T++ language reference

Demo applicationsDemo applications

Demo applications written in T++

POVRay and ALCMD were ported to Windows A benchmark testing was made to prove the

correctness of Windows OpenTS port• Both Windows and Linux were used in testing• Same hardware platform used: AMD64• Same OpenTS kernel source code used (so-

called cross-platform version of microkernel)• Same applications’ (POVRay and ALCMD)

source code used for Windows and Linux

Benchmark notations

time(N) — execution time of T++ implementation that depends on a number N of processors used in test run (in seconds)

time_c — execution time of C implementation (in seconds, one processor used in test run)

time%(N) = time(N) / time_c CoE = 1 / (N * time%(N)) — coefficient of

efficiency

POVRay time(%) chart

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8CPUs

Time(%) Linux,MPI Time(%) Linux,OpenTSTime(%) Windows,MPI Time(%) Windows,OpenTS

POVRay CoE chart

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8CPUs

CoE Linux,MPI CoE Linux,OpenTS CoE Windows,MPI CoE Windows,OpenTS

ALCMD time(%) chart

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

1 2 3 4 5 6 7 8CPUs

Time(%) Linux,MPI Time(%) Linux,OpenTSTime(%) Windows,MPI Time(%) Windows,OpenTS

ALCMD CoE chart

30%

40%

50%

60%

70%

80%

90%

100%

110%

120%

1 2 3 4 5 6 7 8CPUs

CoE Linux,MPI CoE Linux,OpenTS CoE Windows,MPI CoE Windows,OpenTS

Sync/Async problem

Problem: CoE for POVRay is decreasing heavily under Windows

Reason: there is no support for asynchronous interaction between processes

POVRay time% Sync / time% Async chart

60%

80%

100%

120%

140%

160%

180%

200%

220%

0 1 2 3 4 5 6 7 8 9

CPUs

Time Sync / Time Async

Sync/Async conclusion

It is reasonable to implement asynchronous mode during the next project due to T-applications performance loss under Windows

Benchmark results

For POVRay:• its time is at the maximum only 12% greater than

under Linux

• its CoE is at the maximum only 14% less than under Linux

For ALCMD:• its time (in %) is always roughly the same as time

under Linux

• its CoE sometimes greater by 21% than under Linux

ConclusionConclusion

All planned goals are achieved The work is done for the current project There are good prospects for the further

cooperation

Proposals for theProposals for thenext stepnext step

Asynchronous support SMP mode T-program trace visualizer Generating web-services for T-functions DMPI support Fault tolerance for T++ applications Different schedulers In future: OpenTS/.NET — T#

Thanks!Thanks!

… … Any questions? … …