[squeak-dev] Smallapack

Yoshiki Ohshima Yoshiki.Ohshima at acm.org
Sun Jul 31 22:48:08 UTC 2016


I see you have some changes but it appears that evaluating the
Installer do it goes into an infinite loop of #moduleName and
#masOsxModuleName.

(Thanks again!)

On Sat, Jul 30, 2016 at 8:23 AM, Yoshiki Ohshima
<Yoshiki.Ohshima at acm.org> wrote:
> But some of TestLapackMatrix tests fail.  A few external functions
> cannot be found, it looks like.
>
> On Sat, Jul 30, 2016 at 7:55 AM, Yoshiki Ohshima
> <Yoshiki.Ohshima at acm.org> wrote:
>> 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
>
>
>
> --
> -- Yoshiki



-- 
-- Yoshiki


More information about the Squeak-dev mailing list