Download - OpenTS for Windows Compute Cluster Server
![Page 1: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/1.jpg)
OpenTS for Windows OpenTS for Windows Compute Cluster ServerCompute Cluster Server
![Page 2: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/2.jpg)
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
![Page 3: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/3.jpg)
IntroductionIntroduction
![Page 4: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/4.jpg)
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
![Page 5: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/5.jpg)
OpenTS (academic)OpenTS (academic)for Windows CCSfor Windows CCS
![Page 6: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/6.jpg)
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
![Page 7: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/7.jpg)
T-converterT-converter
![Page 8: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/8.jpg)
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;
![Page 9: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/9.jpg)
T-microkernelT-microkernel
![Page 10: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/10.jpg)
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
![Page 11: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/11.jpg)
OpenTS installerOpenTS installer
![Page 12: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/12.jpg)
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)
![Page 13: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/13.jpg)
OpenTS installer UI
![Page 14: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/14.jpg)
Building T++ applicationsBuilding T++ applications
![Page 15: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/15.jpg)
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
![Page 16: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/16.jpg)
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
![Page 17: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/17.jpg)
Building T++ applicationsin Visual Studio 2005 IDE
![Page 18: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/18.jpg)
OpenTS SDKOpenTS SDK
![Page 19: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/19.jpg)
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
![Page 20: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/20.jpg)
User documentationUser documentation
![Page 21: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/21.jpg)
OpenTS user documentation
![Page 22: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/22.jpg)
T++ language reference
![Page 23: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/23.jpg)
Demo applicationsDemo applications
![Page 24: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/24.jpg)
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
![Page 25: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/25.jpg)
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
![Page 26: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/26.jpg)
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
![Page 27: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/27.jpg)
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
![Page 28: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/28.jpg)
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
![Page 29: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/29.jpg)
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
![Page 30: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/30.jpg)
Sync/Async problem
Problem: CoE for POVRay is decreasing heavily under Windows
Reason: there is no support for asynchronous interaction between processes
![Page 31: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/31.jpg)
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
![Page 32: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/32.jpg)
Sync/Async conclusion
It is reasonable to implement asynchronous mode during the next project due to T-applications performance loss under Windows
![Page 33: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/33.jpg)
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
![Page 34: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/34.jpg)
ConclusionConclusion
All planned goals are achieved The work is done for the current project There are good prospects for the further
cooperation
![Page 35: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/35.jpg)
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#
![Page 36: OpenTS for Windows Compute Cluster Server](https://reader035.vdocuments.mx/reader035/viewer/2022070411/568148af550346895db5c3df/html5/thumbnails/36.jpg)
Thanks!Thanks!
… … Any questions? … …