In this blog, I am going to explore what the different thread settings in PBRS (Power BI Report Scheduler from ChristianSteven Software) are, and how they affect reporting scheduling and rendering. Before getting into that though, it is important to understand the main differences between threads and processes.
Threads and Process in PBRS
A process, in the simplest terms, is an executing program (an exe in Windows). One or more threads run inside the context of a process. A thread is the basic unit to which the operating system allocates processor time. A thread can execute any part of the process code, including parts currently being executed by another thread. Threads allow a single process to carry out multiple tasks at the same time.
Every process runs in its own separate memory space and typically a fault in one process does not affect any other process.
When it comes to PBRS, some of the “thread” settings refer to processes and we will explore these below.
Multi-Threading for Scheduling
Available in the Options window, this is the first multi-threading setting that you will likely encounter when setting up your PBRS scheduler. This setting allows you to allocate up to 8 threads, but it is referring to Processes. What this setting affects is the number of schedules that will processed concurrently by PBRS.
To look at an example, say you have 6 schedules all due to run at 9am; when the time comes to run the schedules, PBRS will start 6 sub-processes and each one will be dedicated to processing a single schedule. If this setting was switched off, a single process would run all 6 schedules sequentially.
Multi-Threading for Power BI Page Rendering
This setting is also available in Options and allows you to determine how many pages are rendered at the same time per schedule. As above, this option is also referring to the number of processes that will be invoked to render the various pages of a Power BI report. If this setting is set to, say 10, it means that a single PBRS process running a Power BI report containing 5 pages, will invoke 5 instances of the pbrsrenderer.exe process with each one dedicated to rendering a single page of that report.
This setting is effective on a per schedule basis meaning two schedules running at the same time to render 5-page reports will end up invoking 10 instances of the pbrsrenderer.exe process. The system will however cap the total number of the pbrsrenderer.exe processes on any system to 100.
Multi-Threading for Data-Driven Schedules
When setting up a data-driven schedule, you also have an option to specify how many threads will be used process the schedule. Unlike the other settings, this setting is referring to actual internal threads and not processes.
The setting determines how many rows in the data-driver will be processed asynchronously during the report rendering phase of schedule execution.
When you put all these settings together, you can begin to see how flexible and powerful PBRS is in allowing you to maximize the processing power of your server.
PBRS Report Scheduler for Power BI