Hello Stacho,
thank you very much for your modification!
I was not aware of the autojoin feature which i abused by acident here. I
will play a little with this!
Am 2017-12-29 22:47, schrieb Stacho Mudrak via Therion:
I am sorry, I am not sure I understand.
The problem is, if there are two lines in two different scraps within one
.th2 file starting or ending from point with same coordinates, therion
automatically creates a join between them. In your file, each of line of
5000 scraps are the same. Therefore they start and end at same points.
Therefore therion automatically creates 5000x5000 joins for each line end.
And this is the problem. I have modified your script to add some randomness
to the coordinates (just shift every scrap by random vector) and it solves
the problem.
S.
On 29 December 2017 at 15:42, Benedikt Hallinger via Therion
<[email protected] [31]> wrote:
Shouldnt they be placed at the actual position according to station
coordinates prior joining, ie the scrap point reference coordinates be
local to its namespace?
Am 2017-12-29 11:20, schrieb Stacho Mudrak via Therion:
Hello, I have not investigated to details a lot, but the problem with
this huge file is search for automatic joins. All the scraps are in one
giant file and have a lot of common points so it tries to auto-connect
every scrap with every scrap, therefore n^2 memory usage. Situation that
should not happen in reality.
If you apply attached patch and disable automatic scrap joins - therion
runs smoothly even with such a giant structure. But more proper solution
would be to shift every scrap, that they will not have common points.
S.
diff --git a/thdb2d.cxx b/thdb2d.cxx
index b8c9720..7d7b72e 100644
--- a/thdb2d.cxx
+++ b/thdb2d.cxx
@@ -2428,6 +2428,7 @@ void thdb2d::pp_process_joins(thdb2dprj * prj)
// prida na koniec automaticke joiny
jci = joincandlist.begin();
+ jci = joincandlist.end();
while (jci != joincandlist.end()) {
njci = jci;
njci++;
On 27 December 2017 at 13:26, Benedikt Hallinger via Therion
<[email protected] [14] [14]> wrote:
Hello,
for further testing i wrote a small script generating a sample cave of
variable length.
The bash-script generateTestCave.sh generates a th-file one main survey
and *n* linked subusrveys with included scrap and is called as following:
./generateTestCave.sh <number-of-surveys> test.th [9] [9]
eg "./generateTestCave.sh 1000 test.th [10] [10]" generates a survey
"test" containing 1000 linked subsurveys containing each a suitable
inline-copy of the scrap.th [11] [11]. On the main "test"-survey level
also for each subsurvey a "map n-Plan" is generated.
This is then selected in the "thconfig" file.
With the contained thconig file one can pay a little to explore
behavior.
What i encounter is the following unexepected:
With raising survey count the memory needed and time to compile
increases very heavily. This is DESPITE i only select 3 distinct maps for
output in lox and pdf plan projection.
Why is that so? i expected, that the selection influences the scraps
selected and thus compile time should nearly remain constant (at least
only increase slightly due to more data processed and discarded)?
Also, in the mailing list there was an encounter of strange behavior of
the select/unselect command - do we have a bug here somewhere that also
causes the behavior i see here?
Am 2017-12-03 10:41, schrieb Benedikt Hallinger:
Thank, how could i switch this?
I also wrote a small testcase that segfaulted at about 3000 scraps.
Am 2017-12-02 9:55, schrieb Martin Budaj via Therion:
Hi,
there is no change regarding the limits in Therion. If there is a
real
need, following could be done:
- in the current version of MetaPost, its possible to used "double"
arithmetic just by specifying a command line option, which
practically
eliminates MetaPost limits
- instead of pdfTeX we could use LuaTeX to produce the PDFs. This
doubles the number of registers available from 32768 to 65536.
Registers are needed to reference the fragments of all
scraps/sections; you usually need up to 6 of them for a scrap. So you
would get maybe 12000 instead of 6000 scraps in one output file. It
would require some substantial work to support LuaTeX (there is e.g.
completely different font handling compared to PdfTeX).
And yes, the limit applies just to the data selected for export.
Martin
On Tue, Nov 28, 2017 at 9:44 PM, Benedikt Hallinger via Therion
<[email protected] [6] [6]> wrote:
Maybe another question:
Assume a large cave with thousands of scraps.
When i make a thconfig file sourcing all that data, but using
"select"
statements i only select partial data,
does the metapost limit apply to the whole dataset or just the
scraps
covered by the select command?
Am 2017-11-28 22:19, schrieb Benedikt Hallinger via Therion:
Hello Martin,
is the blow limit of 4096 scraps still valid in the current
version?
Or is it already fixed so we can use more scraps?
On Tue, Dec 1, 2009 at 5:26 PM, Carl Magnuson <magnu213 at umn.edu
[1] [1]>
wrote:
It looks like the solution is to issue the following metapost
command:
warningcheck := 0;
Indeed. The new limit will be 32768 and could not be increased
further
in Metapost itself.
The solution would be modification of how therion manages metapost
pictures (currently they are stored in files data.1 to data.4000,
with
files data.4001 to data.4095 reserved for pattern definitions).
This
numbering scheme could be modified to allow more file name
prefixes
and consequently theoretically unlimited number of scraps
processed by
metapost.
On the other hand there is still pdfTeX limit which would not
allow
much more scraps. PdfTeX uses internal registers for scraps
referencing (scrap data is included only once in pdf file and can
be
referenced on multiple pages). You could avoid pdftex limit by
using
SVG output (if SVG viewers would process large number of internal
references).
In the longer-term future (a few years) I would like to use
metapost
as a library instead of external metapost executable, which would
solve the problems with temporary files (and other problems as
well).
However adding it in a
code metapost
warningcheck := 0;
endcode
block seems to have no effect, mpost still fails on more then
4096
scraps.
Therion currently inserts warningcheck:=1; before scraps without
good
reason, so it will be fixed soon.
If the new warningcheck setting would work for you, I would prefer
not
to modify current file numbering scheme for metapost pictures and
have
it fixed later with implementation of metapost library.
Martin
_______________________________________________
Therion mailing list
[email protected] [2] [2]
https://mailman.speleo.sk/listinfo/therion [3] [3]
_______________________________________________
Therion mailing list
[email protected] [4] [4]
https://mailman.speleo.sk/listinfo/therion [5] [5]
_______________________________________________
Therion mailing list
[email protected] [7] [7]
https://mailman.speleo.sk/listinfo/therion [8] [8]
_______________________________________________
Therion mailing list
[email protected] [12] [12]
https://mailman.speleo.sk/listinfo/therion [13] [13]
Links:
------
[1] http://umn.edu [15]
[2] mailto:[email protected] [16]
[3] https://mailman.speleo.sk/listinfo/therion [17]
[4] mailto:[email protected] [18]
[5] https://mailman.speleo.sk/listinfo/therion [19]
[6] mailto:[email protected] [20]
[7] mailto:[email protected] [21]
[8] https://mailman.speleo.sk/listinfo/therion [22]
[9] http://test.th [23]
[10] http://test.th [24]
[11] http://scrap.th [25]
[12] mailto:[email protected] [26]
[13] https://mailman.speleo.sk/listinfo/therion [27]
[14] mailto:[email protected] [28]
_______________________________________________
Therion mailing list
[email protected] [29]
https://mailman.speleo.sk/listinfo/therion [30]
Links:
------
[1] http://umn.edu
[2] mailto:[email protected]
[3] https://mailman.speleo.sk/listinfo/therion
[4] mailto:[email protected]
[5] https://mailman.speleo.sk/listinfo/therion
[6] mailto:[email protected]
[7] mailto:[email protected]
[8] https://mailman.speleo.sk/listinfo/therion
[9] http://test.th
[10] http://test.th
[11] http://scrap.th
[12] mailto:[email protected]
[13] https://mailman.speleo.sk/listinfo/therion
[14] mailto:[email protected]
[15] http://umn.edu
[16] mailto:[email protected]
[17] https://mailman.speleo.sk/listinfo/therion
[18] mailto:[email protected]
[19] https://mailman.speleo.sk/listinfo/therion
[20] mailto:[email protected]
[21] mailto:[email protected]
[22] https://mailman.speleo.sk/listinfo/therion
[23] http://test.th
[24] http://test.th
[25] http://scrap.th
[26] mailto:[email protected]
[27] https://mailman.speleo.sk/listinfo/therion
[28] mailto:[email protected]
[29] mailto:[email protected]
[30] https://mailman.speleo.sk/listinfo/therion
[31] mailto:[email protected]
_______________________________________________
Therion mailing list
[email protected]
https://mailman.speleo.sk/listinfo/therion