[squeak-dev] Smallapack

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sat Aug 6 23:56:33 UTC 2016


This should be fixed in ConfigurationOfSmallapack-nice.18
BTW, I think you can provide the absolute path to the .dylib instead of
copying in local repository...

2016-08-06 23:29 GMT+02:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> Hi Yoshiki,
> thanks for reporting, I'll try better...
>
>
> 2016-08-01 0:48 GMT+02:00 Yoshiki Ohshima <Yoshiki.Ohshima at acm.org>:
>
>> 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
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160807/2f1d5828/attachment.htm


More information about the Squeak-dev mailing list