[squeak-dev] Smallapack

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sat Aug 6 21:29:58 UTC 2016


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/20160806/955e0a79/attachment-0001.htm


More information about the Squeak-dev mailing list