AS/400 Flags Disclosure ----------------------- Q: What is QPRCMLTTSK? A: Documentation from Work Management, document SC41-5340. 2.3.84 QPRCMLTTSK System Value QPRCMLTTSK is processor multi-tasking. This system value allows you to turn on and turn off the processor multi-tasking capability. If enabled, more than one set of task data will be resident in each CPU. Some work load may experience increased performance due to caching implications. The possible values for processor multi-tasking are: '0': Processor multi-tasking is turned off. '1': Processor multi-tasking is turned on. Q: How are memory pools adjusted? A: Many of our systems come with large amounts of memory. The memory can be allocated to different pools, and then subsystems can be defined to use a specific memory pool when running. For the SPECjbb runs, our tests were run in the *MACHINE and *BASE pools, and the excess memory was moved to alternate pools. This was done to show that the test could run in a smaller amount of memory than the actual amount of system memory. Using the WRKSYSSTS command, you can see how much memory has been allocated to each pool, and interactively update the amount in each pool. Detailed description of adjusting memory pools can be found in the Work Management documentation, SC41-5340, section 4.2 Storage Pools. Q: Describe the AS/400 Java Transformer A: The following documentation comes from the AS/400 Developer Kit for Java publication Java transformer The Java transformer is an IBM Operating System/400 (OS/400) component that preprocesses class files to prepare them to run using the AS/400 Java virtual machine. The Java transformer creates an optimized program object that is persistent and is associated with the class file. In the default case, the program object contains a compiled, 64-bit RISC machine instruction version of the class. The Java interpreter does not interpret the optimized program object at runtime. Instead, it directly runs when the class file is loaded. You do not need to do anything to start the Java transformer. It runs automatically the first time that the class file runs on the system, unless you explicitly request that the class file run in interpreted mode. You can use the Create Java Program (CRTJVAPGM) command to explicitly start the Java transformer. The CRTJVAPGM command optimizes the class file or JAR file while the command runs, so nothing needs to be done while the program is running. This improves the speed of the program the first time that it runs. Using the CRTJVAPGM command, instead of relying on default optimization, ensures the best optimization possible and also better utilizes space for the Java programs that are associated with the class file or JAR file. Using the CRTJVAPGM command on a class file, JAR file, or ZIP file causes all the classes in the file to be optimized, and the resulting Java program object will be persistent. This results in better runtime performance. You can also change the optimization level or select an optimization level other than the default of 10 by using the CRTJVAPGM command or the Change Java Program (CHGJVAPGM) command. At optimization level 40, interclass binding is performed between the classes within a JAR file, and in some cases, the classes are inlined. Interclass binding improves the call speed. Inlining removes the call entirely. In some cases, you can inline methods between classes within the JAR file or ZIP file. Specifying OPTIMIZE(*INTERPRET) on the CRTJVAPGM command causes any classes that are specified on the command to be verified and prepared to run in interpreted mode. The Run Java (RUNJVA) command can also specify OPTIMIZE(*INTERPRET). This parameter specifies that any classes running under the Java virtual machine are interpreted, regardless of the optimization level of the associated program object. This is useful when debugging a class that was transformed with an optimization level of 40. To force interpretation, use INTERPRET(*YES). Q: Why do we use -opt40 on the java command line? A: According to the SPECjbb run rules, the jbb_no_precompile.jar file cannot be precompiled prior to running the java command. This flag indicates that any class/jar/zip which has not been precompiled (i.e., does not currently have an attached java program) should be implicitly created for direct execution by the Java transformer at optimization level 40 during the run. Q: How do you prevent precompilation of the classes in jbb_no_precompile.jar? A: Once a class/jar/zip file has been compiled for direct execution, either explicitly or implicitly, there is a java program associated with that file that is used for subsequent direct execution runs. The DLTJVAPGM command is used to "delete" or "detach" the java program that was previously created. This was done prior to each SPECjbb run. Q: Why do we set the os400.class.path.system property to POST on the JDK 1.1.8 run? A: In 1.1.8 on the AS/400, by default the user classpath is appended after the system classpath. When running SPECjbb, there is a validity check to determine if jbb.jar is the first entry in the current classpath. Without this property, our 1.1.8 run would be invalid, since the entries from the system classpath appear before jbb.jar.