[squeak-dev] Smallapack

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Fri Jul 29 22:24:49 UTC 2016


OK, what I did on my Mac:

1) look under the Squeak app and edit the Contents/Info.plist
2) change value of SqueakPluginsBuiltInOrLocalOnly to "No"
   otherwise library loading is restricted to the Squeak app bundle
3) copy the veclib framework library files (dylib) in same directory as
squeak image
4) launch Squeak
5) install Smallapack
    follow instruction from
https://github.com/nicolas-cellier-aka-nice/smallapack/wiki/SmallapackSqueak
6) change CBlasLibrary class>>moduleName 'libcblas.dylib' -> 'libBlas.dylib'
    nowadays, cblas and blas are in the same dylib...
7) change CLapackLibrary class>>moduleName 'libclapack.dylib' ->
'libLapack.dylib'
    idem
8) re-initialize the cache (I know, I know, there are too many...)
    CBlasLibrary install. CLapackLibrary install. LapackMatrix
resetBlasInterfaces; resetLapackInterfaces.
9) run the TestCBlas suite

It should be green
I will commit the changes later, and will probably implement moduleNames as
a Preference (pragma oriented).
No need to override code anymore :)

I think step 3) is necessary because of ioLoadModuleRaw() in
platforms/iOS/vm/OSX/sqMacUnixExternalPrims.m
https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/platforms/iOS/vm/OSX/sqMacUnixExternalPrims.m
It would only look those frameworks:

                static char *frameworks[]=
                {
                        "",
                        "/CoreServices.framework/Frameworks",
                        "/ApplicationServices.framework/Frameworks",
                        "/Carbon.framework/Frameworks",
                        0
                };

But I did step 3) before I tried 1) + 2), adn did not retry, so maybe I'm
wrong...
Scanning all the frameworks is not a solution. And what if we want a
specific version?
It would be far better to be able to specify the path to the library from
within the image like VW...


2016-07-29 19:41 GMT+02:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

>
>
> 2016-07-29 19:28 GMT+02:00 Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com>:
>
>>
>>
>> 2016-07-29 19:02 GMT+02:00 Yoshiki Ohshima <Yoshiki.Ohshima at acm.org>:
>>
>>> First question:
>>>
>>> The Mac OS comes with Accelerate.Framework and that contains BLAS.
>>> But probably I still should compile those libraries, right?
>>>
>>>
>> No, it's better to link to accelerated library.
>> I don't have a Mac handy here to verify how to link to it though.
>> I'll be able to check latter in the evening
>>
>>
>
> I've downloaded the code, and I see it now: the library names are
> hardcoded (see implementors of moduleName).
> For Mac it is libblas.dylib and libcblas.dylib
> Also note that there is a preference for switching to cblas (blas
> functions with C interface).
> This should be faster because we pass some parameters by value rather than
> allocating them and pass reference...
>
> Module names could also be replaced by Preferences eventually, but by now,
> you'll have to override...
>
>
>>
>>> On Thu, Jul 28, 2016 at 4:11 PM, Yoshiki Ohshima
>>> <Yoshiki.Ohshima at acm.org> wrote:
>>> > Thanks!
>>> >
>>> > On Thu, Jul 28, 2016 at 4:04 PM, Nicolas Cellier
>>> > <nicolas.cellier.aka.nice at gmail.com> wrote:
>>> >> Hi Yoshiki,
>>> >>
>>> >> Thanks for inquiring about Smallapack.
>>> >>
>>> >> This problem has been solved in 2011 as the post tells.
>>> >> Moreover, it was about alignment of squeak objects that was on
>>> multiple of 4
>>> >> on SqueakV3 memory.
>>> >> Spur is 8 byte aligned, so the problem would have also vanished
>>> without any
>>> >> patch for those being patient :)
>>> >>
>>> >> For the 15 arguments limit, Smallapack comes with it's own compiler,
>>> so it's
>>> >> a non issue.
>>> >> Maybe I should make the documentation more clear on
>>> >>
>>> https://github.com/nicolas-cellier-aka-nice/smallapack/wiki/SmallapackSqueak
>>> >> ?
>>> >>
>>> >> Unfortunately, there's no Sparse Matrix representation in Lapack.
>>> >> If you know of a good package for that, it could be integrated.
>>> >>
>>> >> If you have other questions, don't hesitate to ask.
>>> >>
>>> >> cheers
>>> >>
>>> >> Nicolas
>>> >>
>>> >> 2016-07-29 0:22 GMT+02:00 Yoshiki Ohshima <Yoshiki.Ohshima at acm.org>:
>>> >>>
>>> >>> I am trying to do a bit of linear algebra stuff that involves to
>>> solve
>>> >>> a sparse 2D matrix (for a variation of doing least square fit).
>>> >>>
>>> >>> There was a message from Nicolas:
>>> >>>
>>> >>>
>>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-August/161113.html
>>> >>>
>>> >>> Is this where it stands today, too?  It looks like that arg count
>>> >>> problem is still there in 5.0, but is it in a way non-issue as it is
>>> >>> still FFI based?
>>> >>>
>>> >>> Thanks!
>>> >>>
>>> >>> --
>>> >>> -- Yoshiki
>>> >>>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > -- Yoshiki
>>>
>>>
>>>
>>> --
>>> -- Yoshiki
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160730/2c384b6e/attachment.htm


More information about the Squeak-dev mailing list