|
|
Bugzilla Link |
832 |
Created on |
Mar 10, 2011 22:49 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Extended Description
I have tuned on mss for the mutc backend in 17349. However it does not resolve the problem.
On 10/03/11 22:12, Stephan Herhut wrote:
> The propagation of sync through the dataflow should be handled by a
> phase mss (move_sync_statements os similar) written by Aram. I
> basically pick up whatever he generated.
>
> The wrong looking code after PC is intentional. After PC, print uses
> the argtabs to print function invocations. These correspond to what
> the SL spawn will look like. In SL, the spawn aleady receives the
> result variable.
>
> First check whether MSS is actually running. If that does not help,
> ask Aram to fix it. If he cannot, I might try and find some time.
>
> Cheers
> Stephan
>
> On Thu, Mar 10, 2011 at 12:33 PM, Carl A Joslin
> wrote:
>> Hi Dan
>>
>> I had a quick look at your fibspawn test benchmark, to get an overview of
>> what the intermediate code looks like with functional parallelism.
>>
>> One thing that jumped out at me is that your program will not make use of
>> many threads as the syncs are right after the spawns:
>>
>> After mt ( a main phase that is not run in this case):
>>
>> _dec_rc_( _pinl_51__flat_183, 1);
>> _pinl_889__emal_653__pinl_52__flat_212 = _alloc_( 1, 0, [:int]);
>> _pinl_882__flat_212 = _fill_( _add_SxS_( i, -1),
>> _pinl_889__emal_653__pinl_52__flat_212);
>> _pinl_886__syn_638 = spawn _MAIN::fibworker( _pinl_882__flat_212) ;
>> n = _sync_( _pinl_886__syn_638);
>> _dec_rc_( _pinl_886__syn_638, 1);
>> _pinl_888__emal_652__pinl_53__flat_212 = _alloc_or_reuse_( 1, 0, [:int],
>> i);
>> _pinl_881__flat_212 = _fill_( _add_SxS_( i, -2),
>> _pinl_888__emal_652__pinl_53__flat_212);
>> _dec_rc_( i, 1);
>> _pinl_887__syn_639 = spawn _MAIN::fibworker( _pinl_881__flat_212) ;
>> m = _sync_( _pinl_887__syn_639);
>> _dec_rc_( _pinl_887__syn_639, 1);
>>
>> After pc right before the code is generated:
>>
>> _dec_rc_( SACp_emal_660__pinl_56__flat_183, 1);
>> SACp_pinl_906__emal_663__pinl_57__flat_212 = _add_SxS_( SACl_i, -1);
>> SACstf__MAIN__fibworker__i( SACl_n,
>> SACp_pinl_906__emal_663__pinl_57__flat_212) ; /* <- out in */
>> SACl_n = _sync_( SACp_pinl_903__syn_640);
>> _dec_rc_( SACp_pinl_903__syn_640, 1);
>> SACp_pinl_905__emal_662__pinl_58__flat_212 = _alloc_or_reuse_( 1, 0,
>> [:int], SACl_i);
>> SACp_pinl_905__emal_662__pinl_58__flat_212 = _add_SxS_( SACl_i, -2);
>> _dec_rc_( SACl_i, 1);
>> SACstf__MAIN__fibworker__i( SACl_m,
>> SACp_pinl_905__emal_662__pinl_58__flat_212) ; /* <- out in */
>> SACl_m = _sync_( SACp_pinl_904__syn_641);
>> _dec_rc_( SACp_pinl_904__syn_641, 1);
>>
>> I do not happened to the spawn keywords or the setting of the sync keywords.
>> I presume that that is just a printing problem.
>>
>> Carl
>>
>
>
>