[squeak-dev] Smallapack

Yoshiki Ohshima Yoshiki.Ohshima at acm.org
Sat Jul 30 14:55:16 UTC 2016


Great!

Before (I got into a meeting and then entered the "Friday mode", I was
going down the path of trying to call the Framework functions but
copying files anyway was a simpler solution for now.

Yes, I got all tests green.  Thank  you!

On Fri, Jul 29, 2016 at 3:24 PM, Nicolas Cellier
<nicolas.cellier.aka.nice at gmail.com> wrote:
> 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
>>>>
>>>
>>
>
>
>
>



-- 
-- Yoshiki


More information about the Squeak-dev mailing list