Thread: [Sisal-dev] Sisal 2.0
Brought to you by:
patmiller
From: Johann S. <smi...@gm...> - 2014-02-06 17:56:08
|
Hi everyone! I have read a few papers talking about Sisal 2.0, which is supposed to have things like higher-order functions, etc. However, I cannot find an actual Sisal 2.0 compiler anywhere. Was such a compiler ever developed? Kind Regards, Johann |
From: Patrick M. <pat...@gm...> - 2014-02-06 18:13:22
|
Alas, no. Work was started on Sisal90 a follow on with generic functions and vector ops but it was not completed before funding dried up Pat On Thursday, February 6, 2014, Johann Smit <smi...@gm...> wrote: > Hi everyone! > > I have read a few papers talking about Sisal 2.0, which is supposed to > have things like higher-order functions, etc. However, I cannot find an > actual Sisal 2.0 compiler anywhere. Was such a compiler ever developed? > > Kind Regards, > Johann > |
From: Johann S. <smi...@gm...> - 2014-03-04 00:45:39
|
Hi everyone! I've written the following silly program, to see how the compiler builds a concurrent program vs a sequential program: define main type OneDim = array[integer]; function domap(thesize:integer returns OneDim) for i in 1,thesize new_count := i + 222 returns array of new_count end for end function % domap function main(thesize : integer returns OneDim) let c:=domap(thesize) in c end let end function % main I've compiled using the following parameters: sisalc -concur -C map.sis and sisalc -no-concur -C map.sis The output looks the same ,as in the loop is compiled to an ordinary "for(;;)" loop. Does this mean that when I run the program with parameter -w4 (that is, 4 workers) and I give as input 1024, there will be 4 threads which each run 256 iterations of the loop? Regards, Johann On Thu, Feb 6, 2014 at 7:56 PM, Johann Smit <smi...@gm...> wrote: > Hi everyone! > > I have read a few papers talking about Sisal 2.0, which is supposed to > have things like higher-order functions, etc. However, I cannot find an > actual Sisal 2.0 compiler anywhere. Was such a compiler ever developed? > > Kind Regards, > Johann > |
From: Patrick M. <pat...@gm...> - 2014-03-04 00:52:18
|
That is the general idea, but the compiler may decide that the loop is too small to justify parallelization. There are some compiler controls that guide the estimate in terms of estimated iteration count. You'll need to set that high enough to get the loop to parallelize On Monday, March 3, 2014, Johann Smit <smi...@gm...> wrote: > Hi everyone! > > I've written the following silly program, to see how the compiler builds a > concurrent program vs a sequential program: > > define main > > type OneDim = array[integer]; > > function domap(thesize:integer returns OneDim) > for i in 1,thesize > new_count := i + 222 > returns array of new_count > end for > end function % domap > > function main(thesize : integer returns OneDim) > let c:=domap(thesize) > in c > end let > end function % main > > I've compiled using the following parameters: > > sisalc -concur -C map.sis > > and > > sisalc -no-concur -C map.sis > > The output looks the same ,as in the loop is compiled to an ordinary > "for(;;)" loop. Does this mean that when I run the program with parameter > -w4 (that is, 4 workers) and I give as input 1024, there will be 4 threads > which each run 256 iterations of the loop? > > Regards, > Johann > > > On Thu, Feb 6, 2014 at 7:56 PM, Johann Smit <smi...@gm...<javascript:_e(%7B%7D,'cvml','smi...@gm...');> > > wrote: > >> Hi everyone! >> >> I have read a few papers talking about Sisal 2.0, which is supposed to >> have things like higher-order functions, etc. However, I cannot find an >> actual Sisal 2.0 compiler anywhere. Was such a compiler ever developed? >> >> Kind Regards, >> Johann >> > > |