[Rd] Request: Increasing MAX_NUM_DLLS in Rdynload.c
Dirk Eddelbuettel
edd at debian.org
Tue Dec 20 17:56:10 CET 2016
On 20 December 2016 at 17:40, Martin Maechler wrote:
| >>>>> Steve Bronder <sbronder at stevebronder.com>
| >>>>> on Tue, 20 Dec 2016 01:34:31 -0500 writes:
|
| > Thanks Henrik this is very helpful! I will try this out on our tests and
| > see if gcDLLs() has a positive effect.
|
| > mlr currently has tests broken down by learner type such as classification,
| > regression, forecasting, clustering, etc.. There are 83 classifiers alone
| > so even when loading and unloading across learner types we can still hit
| > the MAX_NUM_DLLS error, meaning we'll have to break them down further (or
| > maybe we can be clever with gcDLLs()?). I'm CC'ing Lars Kotthoff and Bernd
| > Bischl to make sure I am representing the issue well.
|
| This came up *here* in May 2015
| and then May 2016 ... did you not find it when googling.
|
| Hint: Use
| site:stat.ethz.ch MAX_NUM_DLLS
| as search string in Google, so it will basically only search the
| R mailing list archives
|
| Here's the start of that thread :
|
| https://stat.ethz.ch/pipermail/r-devel/2016-May/072637.html
|
| There was not a clear conclusion back then, notably as
| Prof Brian Ripley noted that 100 had already been an increase
| and that a large number of loaded DLLs decreases look up speed.
|
| OTOH (I think others have noted that) a large number of DLLs
| only penalizes those who *do* load many, and we should probably
| increase it.
|
| Your use case of "hyper packages" which load many others
| simultaneously is somewhat convincing to me... in so far as the
| general feeling is that memory should be cheap and limits should
| not be low.
|
| (In spite of Brian Ripleys good reasons against it, I'd still
| aim for a *dynamic*, i.e. automatically increased list here).
Yes. Start with 10 or 20, add 10 as needed. Still fast in the 'small N'
case and no longer a road block for the 'big N' case required by mlr et al.
As a C++ programmer, I am now going to hug my std::vector and quietly retreat.
Dirk
| Martin Maechler
|
| > Regards,
|
| > Steve Bronder
| > Website: stevebronder.com
| > Phone: 412-719-1282
| > Email: sbronder at stevebronder.com
|
|
| > On Tue, Dec 20, 2016 at 1:04 AM, Henrik Bengtsson <
| > henrik.bengtsson at gmail.com> wrote:
|
| >> On reason for hitting the MAX_NUM_DLLS (= 100) limit is because some
| >> packages don't unload their DLLs when they being unloaded themselves.
| >> In other words, there may be left-over DLLs just sitting there doing
| >> nothing but occupying space. You can remove these, using:
| >>
| >> R.utils::gcDLLs()
| >>
| >> Maybe that will help you get through your tests (as long as you're
| >> unloading packages). gcDLLs() will look at base::getLoadedDLLs() and
| >> its content and compare to loadedNamespaces() and unregister any
| >> "stray" DLLs that remain after corresponding packages have been
| >> unloaded.
| >>
| >> I think it would be useful if R CMD check would also check that DLLs
| >> are unregistered when a package is unloaded
| >> (https://github.com/HenrikBengtsson/Wishlist-for-R/issues/29), but of
| >> course, someone needs to write the code / a patch for this to happen.
| >>
| >> /Henrik
| >>
| >> On Mon, Dec 19, 2016 at 6:01 PM, Steve Bronder
| >> <sbronder at stevebronder.com> wrote:
| >> > This is a request to increase MAX_NUM_DLLS in Rdynload.c in from 100 to
| >> 500.
| >> >
| >> > On line 131 of Rdynload.c, changing
| >> >
| >> > #define MAX_NUM_DLLS 100
| >> >
| >> > to
| >> >
| >> > #define MAX_NUM_DLLS 500
| >> >
| >> >
| >> > In development of the mlr package, there have been several episodes in
| >> the
| >> > past where we have had to break up unit tests because of the "maximum
| >> > number of DLLs reached" error. This error has been an inconvenience that
| >> is
| >> > going to keep happening as the package continues to grow. Is there more
| >> > than meets the eye with this error or would everything be okay if the
| >> above
| >> > line changes? Would that have a larger effect in other parts of R?
| >> >
| >> > As R grows, we are likely to see more 'meta-packages' such as the
| >> > Hadley-verse, caret, mlr, etc. need an increasing amount of DLLs loaded
| >> at
| >> > any point in time to conduct effective unit tests. If MAX_NUM_DLLS is
| >> set
| >> > to 100 for a very particular reason than I apologize, but if it is
| >> possible
| >> > to increase MAX_NUM_DLLS it would at least make the testing at mlr much
| >> > easier.
| >> >
| >> > I understand you are all very busy and thank you for your time.
| >> >
| >> >
| >> > Regards,
| >> >
| >> > Steve Bronder
| >> > Website: stevebronder.com
| >> > Phone: 412-719-1282
| >> > Email: sbronder at stevebronder.com
| >> >
| >> > [[alternative HTML version deleted]]
| >> >
| >> > ______________________________________________
| >> > R-devel at r-project.org mailing list
| >> > https://stat.ethz.ch/mailman/listinfo/r-devel
| >>
|
| > [[alternative HTML version deleted]]
|
| > ______________________________________________
| > R-devel at r-project.org mailing list
| > https://stat.ethz.ch/mailman/listinfo/r-devel
|
| ______________________________________________
| R-devel at r-project.org mailing list
| https://stat.ethz.ch/mailman/listinfo/r-devel
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the R-devel
mailing list