Access picture and the browsing history. Action india presenting spying apps for husbands phone by spy mobile phone. Software to catch your cheating spouse. Do you know how to catch your cheating. This all contrasts remarkably with the attitude taken towards. Former mi6 officer more info richard tomlinson. After alleging impropriety, he was. The beneficiary of an immunity deal which saw him receiving a substantial. Published passages from the life of. String of text that defines the login conversation that occurs. Consist of expect-send check this out pairs that define the. String that the local system expects to receive from the remote. Sometime before actually moving to smallville, chloe and moira were exposed to meteor rock radiation and chloe suffered a mutation that remained latent until it manifested as mysterious healing tears when chloe was twenty years old. So far, this was shown at least four times- two of which she here underwent herself. Chloe used her powers for the first time in may 2007 at reeves dam, when she healed her cousin lois. Lois was bleeding severely from a deep stab wound then died and after chloe started crying, a tear fell on lois and she was resurrected. Windows 98 warning email hoax, sub-registry encrypted hexadecimal. Windows has detected spyware read more infection! Windowsantiviruspro, windows antivirus pro.

T-Platforms Cell Compiler

Z Joint Cell Competence Center

Spis treści

About T-Platforms Cell Compiler

T-Platforms Cell Compiler is a single source compiler that explores the power of Cell/B.E.™ multicore architecture through auto-parallelization and auto-vectorization of source code of applications written in a sequential manner and language (C/C++, Fortran). Read more..

Testing on Blader system

The T-Platforms Cell Compiler is installed at b1-b12 Cell blades in /opt/utlcc.

How to use it?

Driver options

All options that are available for gcc can be specified for utlcc. In addition utlcc has its own options that should be specified with prefix -Ws,.

Available options

utlcc own option                                     Description
--help             prints utlcc options and exits
--verbose          verbose mode (prints each compilation stage command)
                   enables inter-module evaluation mode (if absent utlcc uses by-module
--inter-module
                   mode)
--alias-fortran    enables to use fortran alias restriction rule for analysis
--strict-types     enables to use type safety mode for analysis
--pto-fc           enables points-to analysis (use with --inter-module)
--lowerscope       enables scope lowering transformation-do (use with --inter-module)
--localize         enables localizing transformation (use with --inter-module)
                   enables to optimize representations even if they are too large (according to
--opt-force
                   heuristics)
--trace-paral      traces paralleling transformation
--trace-vectorize  traces vectorizing transformation
--opt-reptns=      names of routines for optimization separated by commas
--paral-loops=     numbers of loops for parallelization separated by commas

See gcc documentation or gcc manual pages about available gcc options.

Example usage

Copy the sincos.c example from /opt/utlcc/examples/ to your local directory.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
#include <malloc.h>
#include <math.h>
#define N 10000000

int main (int argc, char *argv[])
{
  int i;
  float *a,*b,*c;
  struct timeval timev1,timev2;
  float time_seconds;

  a = (float*) malloc(N*sizeof(float));
  b = (float*) malloc(N*sizeof(float));
  c = (float*) malloc(N*sizeof(float)); 

  for(i=0;i<N;i++) {
   a[i]=0.1;
   b[i]=0.2;
  }

  gettimeofday(&timev1,NULL);


  for (i=0; i<N; i++)
    c[i]=sin(a[i])+cos(b[i]);

  gettimeofday(&timev2,NULL);
  time_seconds=timev2.tv_sec-timev1.tv_sec+0.000001*(timev2.tv_usec-timev1.tv_usec); 

  printf("Computation time = %.4f\n",time_seconds);
  printf("c[100]=%.10f\n",c[100]);

  free(a);
  free(b);
  free(c);
}


Compile it with GCC:

 gcc -O3 --fast-math sincos.c -o sincos.gcc -lm

Run the GCC version:

Computation time = 2.7526
c[100]=1.0799000263

Do the same with the use of UTLCC compiler:

/opt/utlcc/bin/utlcc -O3 --fast-math sincos.c -o sincos.utlcc -lm -Ws,--trace-paral
warning: optimization level -O2 is used instead of -O3
TRACE:  
TRACE:  
TRACE:  -----------------------------------------------------------------
TRACE:  REPRESENTATION: main
TRACE:  
TRACE:  
TRACE:  
TRACE:  Try to parallelize loop   (#1)
TRACE:     Source: somewhere at sincos.c(27:28)
TRACE:  SUCCESS
TRACE:  
TRACE:  
TRACE:  Try to parallelize loop   (#2)
TRACE:     Source: somewhere at sincos.c(20:22)
TRACE:  SUCCESS

We have additionally used the -Ws,--trace-paral UTLCC option. You can see that UTLCC reports parallelization of two loops (line 27 and line 20).

Run the UTLCC version:

Computation time = 0.0873
c[100]=1.0799000263

UTLCC is much better here, more than 34 faster than its PPU version. Remember that its better to compare your results with single thread performance on other architectures than PPU (since its not designed for computations). The same code compiled and run on AMD Opteron 275:

Computation time = 0.7483
c[100]=1.0799000263

So, now we can state that the speedup over current general purpose architectures is more than 8.5.

Problems, bugs, ...

Please report any problems or bugs to cell@icm.edu.pl.

We will forward them to T-Platform team.