Report Manager Server

Multiprocessor support and hyperthreading

Report Manager engine have multiprocessor support feature, that is when you execute it as a service or as a TCP server standalone application or a web server, each petition works in a independent thread (or process) so a machine with more than one CPU can distribute threads and optimize performance. It also supports intel hyperthreading technology.

Note, when using a machine with more than one processor use web server repwebexe.exe for better performance instead the ISAPI module (repwebserver.dll).

Installation

In a SMP machine you must copy the tool printreptopdf.exe in the same directory as the server application (reportserverapp.exe, reportservercon.exe, repserver service.)

It's recomended the use of reportservercon application in Linux because smp applications are more stable running in console mode, not in top of a X window architechture.

Performance gain

In practice you will only experiment performance gain while executing report server applications, and also only when there is more than one active request executing.

But if you execute report server application (or web server) in a dual processor machine and four client requests of a long report comes to the server at the same time, the reports will be served with about a 90-95% performance gain (in completion time), compared with the same machine with only one processor. Note that a single processor hyperthreading cpu can emulate two processors but I think you will not obtain a 90% boost (not tested yet).

This numbers are not precise, the performance gain will depend on other things like:

How it works

The server application detects the multiprocessing capability, then for each report execution request it starts a new process calling printreptopdf.

Disabling smp support

You can disable smp support by adding this at the server configuration file:

[CONFIG]
DISABLESMP=1

Take care disabling smp can break the server, that is in some smp systems it's not allowed to disable smp (most Linux distros) because the ystem threads implementation, so it's not recommended and not supported in any way.