Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
We have a requirement to generate 800+ reports in excel format. We are using Qlikview 12 and NPrinting 17.6 version with cyclic group functionality. To achieve parallel execution we have created 4 tasks from 4 different Qlikview applications. Currently it is taking more than 8 hours to execute the reports. How we can reduce the time or achieve parallel execution in more efficient way. it will be helpful if you provide your thoughts on the same.
Hello all, I'm one of the original developer of both NP 16 and NP 17 and I would like to shed some light over the parallelization abilities of our NP 17 engine.
First of all, NP 16 and 17 use completely different processes while building reports. NP 16 would have been able to achieve report parallelization and because of this we chose to develop a single data request process to fetch each object of a report separately. This allowed us to achieve a higher form of parallelization that is independant from tasks and reports.
So, let's start from the fact that I understood that
...To achieve parallel execution we have created 4 tasks from 4 different Qlikview applications...
means that you copied your only document with 4 different names to be able to achieve parallel execution, thinking that the same document would automatically be read linearly.
If this is what you did, in fact you created a non optimal environment. NP 17 works better with few documents that are "active" at the same time, because it can parallelize more.
So I would instead use one document and one task. In a perfect situation, where QlikView doesn't have any problem with the document this is the way to go.
Instead, if you noticed an high "mortality" for QlikView (many errors in the log stating the process stuck or died), right now the best way is to go with multiple documents (we are working on this).
Right now I would also add that is important to keep clean the bookmarks folder of the user running the NP 17 engine.
hi
first i hope you are aware that single nprinting engine can't run task in parallel, so it doesn't matter that you
split the tasks.
the simple way is to purchase additional engines that will allow parallel tasks
otherwise you'll need to check if you can make changes to the report so it'll be generated faster
Thank you for the response. The execution speed also depends on Server RAM right. Currently they are running in 32 GB Machine. If the increase in RAM size will help to reduce the speed?.
Yes. report level optimization I am looking into that. But no major optimizations we cannot do on the same. Those all are simple report with 3 tables(that achieved through levels)
Let me know any suggestions on the increase in RAM or other optimization techniques.
Make sure your app contains only the data needed to generate the reports you are creating to keep it as light as possible.
Cycling like levels can put a strain on the report generation so try and simplify if possible.
Also as liron suggests to run tasks in parrallel they will need to be run by seperate engines otherwise the tasks will execute one after another.
Thank you for the responses. What about the server RAM? now only 32 GB RAM , increase in RAM will it help? or these are no way related to reduce the time. please suggest your thoughts on the same.
Hi,
following Andys recommendation see this topic:
https://community.qlik.com/thread/260840?q=qvw%20size
from NPrinitng perspective you can boost NPrinting server by adding CPUs as long as you include NO MORE than 12 CPU CORES.
regards
Lech
here more details:
https://help.qlik.com/en-US/nprinting/November2017/Content/DeployingQVNprinting/Performance.htm
cheers
Lech
Thanks for the replies. it will be very helpful for further usage. also if any other thoughts on the same please share as well.
Hello all, I'm one of the original developer of both NP 16 and NP 17 and I would like to shed some light over the parallelization abilities of our NP 17 engine.
First of all, NP 16 and 17 use completely different processes while building reports. NP 16 would have been able to achieve report parallelization and because of this we chose to develop a single data request process to fetch each object of a report separately. This allowed us to achieve a higher form of parallelization that is independant from tasks and reports.
So, let's start from the fact that I understood that
...To achieve parallel execution we have created 4 tasks from 4 different Qlikview applications...
means that you copied your only document with 4 different names to be able to achieve parallel execution, thinking that the same document would automatically be read linearly.
If this is what you did, in fact you created a non optimal environment. NP 17 works better with few documents that are "active" at the same time, because it can parallelize more.
So I would instead use one document and one task. In a perfect situation, where QlikView doesn't have any problem with the document this is the way to go.
Instead, if you noticed an high "mortality" for QlikView (many errors in the log stating the process stuck or died), right now the best way is to go with multiple documents (we are working on this).
Right now I would also add that is important to keep clean the bookmarks folder of the user running the NP 17 engine.
Thank you. For currently we are not renaming the files into 4. we are creating 4 qlikview files with reduced data(The reports having only required data) and creating connections to achieve better performance. we are not sure the increase the number of connections with different different Qlivkiew files will improve the performance. please suggest your thoughts for the same. And currently going to run in 12 crores machine instead of 4 crores and trying to check the performance.