List of all the compiler options supported by Sun Studio 11 (Sun Studio 12 is similar).
We've just released the CMT Developer Tools for Sun Studio 12. The tools are available for both SPARC and x64 systems, although not all tools are on the x64...
We've just released the CMT Developer Tools for Sun Studio 12. The tools are available for both SPARC and x64 systems, although not all tools are on the x64 platform. The list of tools is as follows:ATS - Automatic Tuning and Troubleshooting System. Automatically finds the best compiler flags or locates optimisation bugs in an application without access to the source code. (SPARC and x64)SPOT - Simple Performance Optimisation Tool. Generates an html report detailing where the...
We've just released the CMT Developer Tools for Sun Studio 12. The tools are available for both SPARC and x64 systems, although not all tools are on the x64 platform. The list of tools is...
The C standard specifies that by default floating point constants should be held as double precision values. Calculations where one variable is single precision...
The C standard specifies that by default floating point constants should be held as double precision values. Calculations where one variable is single precision and one variable is double precision need to be computed as double precision. So it's very easy to have a code which works entirely on single precision variables, but ends up with lots of conversion between single and double precision because the constants are not specified as single precision. An example of this is...
The C standard specifies that by default floating point constants should be held as double precision values. Calculations where one variable is single precision and one variable is double...
Latest version of GCC for SPARC Systems available.
Nice graphical representation of how the US budget is allocated.
It's easy, in theory, to get vnc to launch with a gnome desktop. However, in practice, there are a couple of problems.The basics of getting gnome to work are to...
It's easy, in theory, to get vnc to launch with a gnome desktop. However, in practice, there are a couple of problems.The basics of getting gnome to work are to include a call to gnome-session in .vnc/xstartup$ more .vnc/xstartup#!/bin/sh/bin/gnome-session &This should work, except when a single user is trying to run multiple gnome sessions on the same machine. The symptom of this problem is an error in the log file saying that a session manager is already running. This can...
It's easy, in theory, to get vnc to launch with a gnome desktop. However, in practice, there are a couple of problems.The basics of getting gnome to work are to include a call to gnome-session...
A previous blog entry talks about handling and detecting misaligned memory accesses. For 64-bit code this is easy to achieve using the Performance Analyzer, for...
A previous blog entry talks about handling and detecting misaligned memory accesses. For 64-bit code this is easy to achieve using the Performance Analyzer, for 32-bit code the analysis is a bit more tricky. Fortunately it is possible to do the 32-bit analysis with dtraceConsider the following program which has a misaligned memory access. The default mode of the compiler (since Sun Studio 9) will compile the binary to trap to fix the misalignment and continue% more...
A previous blog entry talks about handling and detecting misaligned memory accesses. For 64-bit code this is easy to achieve using the Performance Analyzer, for 32-bit code the analysis is a bit...
The keyword volatile should be used in situations where an item of data is shared between multiple threads. An example of this is the code:int ready;... while...
The keyword volatile should be used in situations where an item of data is shared between multiple threads. An example of this is the code:int ready;... while (ready);... This code gets compiled into:/\* 0x0004 \*/ ld [%o5+%lo(ready)],%o5/\* 0x0008 \*/ cmp %o5,0/\* 0x000c \*/ be,pn %icc,.L77000022/\* 0x0010 \*/ nop .L77000017:/\* 0x0014 5 \*/ ba .L77000017/\* 0x0018 \*/ nop .L77000022:/\* 0x001c 5 \*/ retl ! Result =/\* 0x0020 \*/ nopCompare this to the situation where the...
The keyword volatile should be used in situations where an item of data is shared between multiple threads. An example of this is the code:int ready;... while (ready);... This code gets...
Sometimes it can be useful to bind a process to a processor. An example of the benefit of doing this is reducing thread migration, and reducing cache misses...
Sometimes it can be useful to bind a process to a processor. An example of the benefit of doing this is reducing thread migration, and reducing cache misses through keeping the caches warm. The trouble with doing this is that it's easy to make a mistake and end up binding multiple processors to the same core - which can result in lower performance because the processes keep one core fully utilised while other cores sit idle.There are various ways of binding processes to...
Sometimes it can be useful to bind a process to a processor. An example of the benefit of doing this is reducing thread migration, and reducing cache misses through keeping the caches warm....