Page 1 of 1

Transformer compilation

Posted: Tue Jan 22, 2008 4:35 pm
by just4u_sharath
When i compile my job after making a small change in parallel transformer, it takes lot of time to compile. I know in the backend a c++ code is running for xformer,but still c++ code generates for whole job. You can say becuase of orchestrare transformer function on server xformer stage. But still it is not clear. Can you please explain why the compile time is more for xformer.

Posted: Tue Jan 22, 2008 6:27 pm
by ray.wurlod
Simply because it does so much more work. C++ code is NOT generated for the whole job as you assert - all that is generated is an OSH script that is a one-to-one mapping of the stages in your design.

Transformer and Build stages do have to compose, compile and link C++ code which is more time consuming. Further, if you have only one license for the compiler anyone wanting to compile will have to wait for the current user to finish compiling. That will also appear to be a delay in compiling.

Posted: Tue Jan 22, 2008 9:03 pm
by Teej
(Forgive me if Ray already mentioned this)Also, if you have multiple transformers, your C compiler's user license may be slowing your compile time. After all, if there's only 1 use license, then only one transformer can be compiled at a time. Usually by simply doubling the license, a dramatic drop in compile time would be visible, especially in a multi-user environment.

Posted: Wed Jan 23, 2008 4:37 am
by AmeyJoshi14
Hi Teej,
Are you saying license plays a critical role in reducing compilation time?

Posted: Wed Jan 23, 2008 8:14 am
by ray.wurlod
Yes, he is. But it's not the whole story. Get a second licence and things will improve only all things being equal (you're not loading more compiles onto it). However, single compiles performed in isolation will not improve at all; you'll simply not be using one of the compiler licences.

Posted: Fri Jan 25, 2008 1:20 am
by just4u_sharath
ray.wurlod wrote:Simply because it does so much more work. C++ code is NOT generated for the whole job as you assert - all that is generated is an OSH script that is a one-to-one mapping of the stages in your design.

Transformer and Build stages do have to compose, compile and link C++ code which is more time consuming. Further, if you have only one license for the compiler anyone wanting to compile will have to wait for the current user to finish compiling. That will also appear to be a delay in compiling.
So I can say no c++ code is generated for the job which has no transformer. Only c++ code is generated for a xformer.

Posted: Sat Jan 26, 2008 12:31 am
by ray.wurlod
You can say that. But it would be better to exclude Build stages as well, for these also contain C++ code and therefore require the compiler.