Setup of SCM Optimizer FAQ
1. What will happen if i don't use to install the optimizer?
The optimizer is an optional component. If you don't want to use it, you don't need to install it. But be aware that the usage of the optimizer is sometimes hidden: Internally the SCM SNP capacity leveling is using the SNP optimizer and in TM the proposal and the scheduling are based on calls to the optimizer as well.
2. Is there one optimizer or are there several ones?
The software component SCM optimizer contains a collection of different optimizer engines. Each engine is delivered as a separate executable inside the archive. The engines are specialized on different kinds of optimization scenarios, e.g. scheduling or network planning.
You can install one instance of the component SCM optimizer or you can install several instance, usually on different servers, for high optimization work load. As these servers are usually reserved for optimization only, we call them optimization servers.
SAP recommends to install the complete software component SCM Optimizer, not only the required engines. Engines not in use, just require some small amount of disk space, but no memory or CPU. The installation of the complete component via the installation routine in addition also takes care of installating all required dlls, as well as some runtime dependencies.
3. Can I use the same optimization server for the test system and the productive system?
If you want to reduce your hardware for the test system, you can use one optimization server for the productive system and the test system in parallel. For this you have three different possibilities:
1. You do install just one version of the optimizer and connect it to both systems. In this case you always have to install the latest version, with the drawback that the changes needed for testing are visible in the productive system as well.
2. You can install two optimizer versions on the same optimization server. You just install the optimizer into two different directories. Then you can update the test system without effects to the productive system.
3. If you want a more restrictive separation you can use two virtual machines on the optimization server. In this case you have to reserve CPU and memory for the test system, so that you reduce the advantage of shared hardware. See 1223407 for details about optimization in virtual environments.
In all three cases, please consider that test runs with a large data volume could influence the performance of the productive system.
4. Can I use the same optimizer for different systems, for example SCM and TM?
This is possible with the same three possibilites like above (using the same optimizer for test and productive system). The most common solution though, is to install two optimization versions into two different directories, to allow independent updates.
5. Can I avoid an additional server for optimization?
In theorie, you can install the optimizer on the application server, too. Be aware that the optimizer needs a lot of memory and CPU power, which may have side-effects on the performance of your application server. For very small optimization calls, an installation on the application server my work well, for example for the proposal and for scheduling in TM. For lager background jobs, it might be better to utilize the cloud infrastructure, if you want to avoid an optimization server. See 1644763 for details.
6. Are there service packs and corrections like for ABAP?
The optimization engines are implemented in C/C++. Nevertheless you receive corrections and updates via the SAP Marketplace. For releases up to SCM Optimizer 7.0 the optimizer offers service packs in the same frequency like SCM. Starting with release 7.02 the optimizer only offers regular patch levels without explicit service packs. If you need an update, always install the latest available patch level. The optimizer is fully compatible to older patch levels and releases.
Read Here for more SAP SCM Transaction Codes.
By switching to the latest patch, you benefit from further performance improvements and you reduce your testing effort: because of the later version you reduce the probability for further updates.
An update is a complete replacement of the optimizer or of some engines. It is not possible to change only one piece of code like you are used to from ABAP corrections.
7. How to update an optimizer?
For each release there are s for updating the optimization server containing the detailed installation guides. Please follow them very carefully, because sometimes there are dependencies to the tecvhnical runtime and the operating system.
8. Can I update the optimizer without any disruption?
Yes. You can install two instances of the optimizers at the same system. Then you set the connections of one optimizer to inactive (transaction code rcc_cust), you update this optimizer and activate it again. In a next step you do the same for the other optimizer instance.
After setting one version inactive, you must wait until all jobs on this optimizer are finished before you can replace it.
A standard update just replaces the optimizer. It needs a few minutes. Without the two installations this will of course result in a short optimizer downtime.
9. What happens if an optimization server falls down?
If you have several optimization servers the capacity leveling of the remote control and connection framework would detect that the server is not available for further optimization jobs and would switch to another available server, even if its priority is lower. You can check the availability of the optimization servers via transaction code rcc_version or via CCMS. There is no automatic restart of the jobs that were running, when the server falls down.
10. How to do a sizing for the optimization server?
The critical KPIs of an optimization run are the memory consumption and the runtime. Both are very hard to predict for optimization processes. Optimization is somehow like a search, and if you search you don't know how long it will need to find what you search for. Very small details can have a very large impact on the duration of the search.
Nevertheless there are several sizing sheets and scenarios to compare available in 1577112. If you want to do a sizing for optimization, you need to analyze your planning approach: Try to divide the planning into as many independent steps as possible. Using the sizing sheets you get a rough memory and CPU estimation for each step. In a last stepm you should check which planning steps are done in parallel, to get the overall requirement for the optimization server.
There is also a totally different approach: delay the purchase of the optimization server and start testing with an optimization server in the Amazon elastic cloud, as described in 1644763. After you know the volume and the hardware requirements, you can purchase the server and switch to your own hardware.
11. What is better: One large optimization server or several smaller ones?
If you have to do several optimization runs in parallel you have to decide to either buy one large server or go for some several smaller ones. The large server gives the flexibility to run lager scenarios in the future. The smaller ones may be cheaper.
The parallel usage of multiple CPU cores is currently restricted to cores on a common server. To have this flexibility of parallel computation it might be favorable not to buy the smallest server. A good choice may be current 2-way-systems with 8-24 cores. These machines usually have the additional possibility to add some memory later, if your business is growing.
12. Can the optimizer beenfit from muliple core archtiectures?
The optimization engines with the most time critical jobs allow the parallel usage of multiple cores for parallel computations: SNP, PP/DS and VSR for TP/VS and TM. In the profiles you can specify how many parallel threads should be used. This has influence on the capa leveling - enough cores must be free - and influence on the sizing - you should buy enough CPU's with enough cores. The engines mentioned above do the parallel computation internally. There is an exception for CTM: CTM cannot parallelize internally. But the application can split scenarios into different calls of the CTM-engine. For this case you need also sufficient CPU cores.
On remark about the speed-up: Of course parallel computation speeds up the optimization process. But this cannot be better than linear in the number of cores. Dividing the scenario in different optimization calls, will give a way higher speed-up, because the complexity of the algorithms is usually not linear.
Let's, for example, discuss about a scenario with perfect speed-up, that sould be parallelized with 8 cores. Perfect speed-up means, that it only takes 12.5% of the single threaded, original time. In addition, let's assume the complexity is quadratic and the scenario can also be split up in to 4 parts with similar size. Then each of these sub-scenarios would need only 6.25% of the original time.
Doing that on only 4 cores will reduce the runtime and the hardware by 50% compared to the simple parallelization.