Difference between revisions of "Kernel Profile"

From ZeptoOS
Jump to navigationJump to search
(New page: BGP is capble of running different kernel per partition. By default IBM CNK and ION kernel(Linux) is booted in a partition when you submit a job. To enable Zepto Feature, you need to conf...)
 
(How to setup Zepto kernel profile)
Line 1: Line 1:
BGP is capble of running different kernel per partition.  By default
+
BGP is capble of running different kernel per partition.  By default  
IBM CNK and ION kernel(Linux) is booted in a partition when you submit
+
IBM CNK and ION kernel(Linux) is booted in a partition when you submit  
a job. To enable Zepto Feature, you need to configure the system
+
a job. To enable Zepto feature, you need to configure the system  
properly with Zepto Kernel.
+
properly with Zepto Kernel  
 +
 +
===Cobalt installed system=== 
 +
 +
If your BGP system has the cobalt scheduler installed and its kernel
 +
profile feature has been configured properly, it would be easy to
 +
boot Zepto kernel.  
 +
 +
You can find a directory called kernel profile directory on login
 +
nodes (/bgsys/argonne-utils/profiles/ in ANL BGP system for
 +
example). Here are step to create a new kernel profile.  Suppose that
 +
you have already built your Zepto kernel images.
 +
 +
<pre> $ cd KERNEL_PROFILE_DIR
 +
$ mkdir YOUR_PROFILE_NAME && cd YOUR_PROFILE_NAME
 +
$ ln -s ZEPTO_DIR/BGP-CN-zImage-with-initrd.elf  CNK
 +
$ ln -s ZEPTO_DIR/BGP-ION-zImage.elf  INK
 +
$ ln -s ZEPTO_DIR/BGP-ION-ramdisk-for-CNL.elf ramdisk
 +
$ ln -s ../factory-default/CNS
 +
$ ln -s ../factory-default/uloader
 +
</pre>
 +
 +
NOTE: Your Zepto images must be readable from others, otherwise your
 +
job will fail. Please double check!
 +
 +
For ANL user, we provide a convenient script named mkprofile-ANL.sh
 +
which essentially does what mentioned in above but has some other
 +
features. The following commen line is equivalent to the steps
 +
decribed in above.
 +
 +
<pre>$ cd ZEPTO_DIR && ./mkprofile-ANL.sh --profile=YOUR_PROFILE_NAME
 +
</pre>
 +
 +
Invoking it with the -h option shows help message. Use -c if you
 +
actually need to copy images instead of making symbolic link.  Use
 +
-cn, -ion or -rd if you have a custom named image.
 +
 +
<pre>$ ./mkprofile-ANL.sh -h
 +
Usage: ./mkprofile-ANL.sh [OPTIONS] 
 +
 +
Options:
 +
-h            : Show this message
 +
-c            : Copy images instead of making symbolic link
 +
-f            : Overwrite exsiting profile 
 +
--profile=name : Specify profile name
 +
--cn=fn        : Compute Node Kernel Image 
 +
--ion=fn      : Specify I/O Node Kernel Image     
 +
--rd=fn        : Specify I/O Node Ramdisk Image
 +
--ls          : show files in profile
 +
--dryrun 
 +
</pre>
 +
 +
Once you have properly configured your Zepto kernel profile, you can
 +
boot Zepto kernel by specifying your kernel profile name via the -k
 +
cobalt option.
 +
 +
<pre>$ cqsub -k YOUR_PROFILE_NAME ....
 +
</pre>
 +
 +
==MMCS console===
 +
 +
If no cobalt kernel profile feature is available on your BGP system,
 +
using MMCS console is choice. What you basically do by mmcs console is
 +
to assign Zepto kernels statatically to a partition you use.
 +
 +
 +
===Assign Zepto images to a BGP partition===
 +
 +
Login to the service node and start MMCS
 +
 +
<pre>$ ssh sn       
 +
sn $ ./mmcs.sh 
 +
</pre>
 +
 +
<pre>[mmcs.sh]
 +
#!/bin/sh
 +
 +
export DB2HOME=/dbhome/bgpdb2c/sqllib
 +
DB2SRC=${DB2HOME}/db2profile
 +
[ -f "$DB2SRC" ] && . $DB2SRC
 +
 +
cd /bgsys/drivers/ppcfloor/bin
 +
./mmcs_db_console
 +
</pre>
 +
 +
Memorize that the current configuration. You need to revert the
 +
blockinfo to the original configuration after you have done using
 +
Zepto kernel.
 +
 +
<pre>console $ set_username YOUR_LOGIN_NAME
 +
console $ getblockinfo BGP_BLOCK_NAME
 +
OK
 +
boot info for block BGP_BLOCK_NAME:
 +
mloader: /bgsys/drivers/ppcfloor/boot/uloader
 +
cnloadImg: /bgsys/drivers/ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/cnk
 +
ioloadImg: /bgsys/drivers/ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/linux,/bgsys/drivers/ppcfloor/boot/ramdisk
 +
status: F
 +
</pre>
 +
 +
Assign Zepto images to a parition
 +
 +
<pre>console $ setblockinfo BGP_BLOCK_NAME /bgsys/drivers/ppcfloor/boot/uloader /bgsys/drivers/ppcfloor/boot/cns,BGP_CN_LINUX_KERNEL_PATH /bgsys/drivers/ppcfloor\
 +
/boot/cns,BGP_ION_LINUX_KERNEL_PATH,BGP_ION_LINUX_RAMDISK_PATH
 +
console $ quit
 +
</pre>
  
===Cobalt installed system===  
+
===Boot Zepto kernel===  
 
+
If your BGP system has the cobalt scheduler installed and its kernel
+
Once you have configured a partition with Zepto kernels correctly,  
profile feature has been configured properly, it would be easy to
+
Zepto kernels will be booted when you run a job on that partition(via
assign Zepto kernel. You can find a directory called kernel profile
+
mpirun for example)  
directory on login nodes (/bgsys/argonne-utils/profiles/ in ANL BGP
+
system for example). Here are step to create a new kernel profile.
+
<pre>fen $ mpirun -verbose 1 -partition BGP_BLOCK_NAME -np 64 -timeout 600 -cwd `pwd` -exe ./a.out
Suppose that you have already built your Zepto kernel images.
+
</pre>  
 
+
NOTE: Your Zepto images must be readable from others, otherwise your
+
===Restore to the original configuration(Don't forget!!!)===  
job will fail. Please double check!
+
 
+
After you have done your work on Zepto kernel, you need to restore to
<pre>
+
the original configuration. Here is an example.  
$ cd $KERNEL_PROFILE_DIR
+
$ mkdir $YOUR_PROFILE_NAME && cd $YOUR_PROFILE_NAME
+
<pre>fen $ ssh sn
$ ln -s $ZEPTO_DIR/BGP-CN-zImage-with-initrd.elf  CNK
+
sn $ ./mmcs.sh  
$ ln -s $ZEPTO_DIR/BGP-ION-zImage.elf INK
+
console $ set_username YOUR_LOGIN_NAME
$ ln -s $ZEPTO_DIR/BGP-ION-ramdisk-for-CNL.elf ramdisk
+
console $ setblockinfo BGP_BLOCK_NAME /bgsys/drivers/ppcfloor/boot/uloader /bgsys/drivers/ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/cnk /bgsys/drivers/\
$ ln -s ../factory-default/CNS
+
ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/linux,/bgsys/drivers/ppcfloor/boot/ramdisk
$ ln -s ../factory-default/uloader
+
console $ quit
</pre>
 
 
 
For ANL user, we provide a convenient script named mkprofile-ANL.sh
 
which essentially does what mentioned in above but has some other
 
features. The following commen line is equivalent to the steps
 
decribed in above.
 
 
 
<pre>
 
$ cd $ZEPTO_DIR && ./mkprofile-ANL.sh --profile=$YOUR_PROFILE_NAME
 
</pre>
 
 
 
Invoking it with the -h option shows help message. Use -c if you
 
actually need to copy images instead of making symbolic link. Use
 
-cn, -ion or -rd if you have a custom named image.
 
 
 
<pre>
 
$ ./mkprofile-ANL.sh -h
 
Usage: ./mkprofile-ANL.sh [OPTIONS] 
 
 
 
Options:
 
-h            : Show this message
 
-c            : Copy images instead of making symbolic link
 
-f            : Overwrite exsiting profile
 
--profile=name : Specify profile name
 
--cn=fn        : Compute Node Kernel Image 
 
--ion=fn      : Specify I/O Node Kernel Image     
 
--rd=fn        : Specify I/O Node Ramdisk Image
 
--ls          : show files in profile
 
--dryrun
 
 
</pre>
 
</pre>

Revision as of 13:31, 23 April 2009

BGP is capble of running different kernel per partition. By default IBM CNK and ION kernel(Linux) is booted in a partition when you submit a job. To enable Zepto feature, you need to configure the system properly with Zepto Kernel

Cobalt installed system

If your BGP system has the cobalt scheduler installed and its kernel profile feature has been configured properly, it would be easy to boot Zepto kernel.

You can find a directory called kernel profile directory on login nodes (/bgsys/argonne-utils/profiles/ in ANL BGP system for example). Here are step to create a new kernel profile. Suppose that you have already built your Zepto kernel images.

 $ cd KERNEL_PROFILE_DIR 
$ mkdir YOUR_PROFILE_NAME && cd YOUR_PROFILE_NAME 
$ ln -s ZEPTO_DIR/BGP-CN-zImage-with-initrd.elf  CNK 
$ ln -s ZEPTO_DIR/BGP-ION-zImage.elf  INK 
$ ln -s ZEPTO_DIR/BGP-ION-ramdisk-for-CNL.elf ramdisk 
$ ln -s ../factory-default/CNS 
$ ln -s ../factory-default/uloader 

NOTE: Your Zepto images must be readable from others, otherwise your job will fail. Please double check!

For ANL user, we provide a convenient script named mkprofile-ANL.sh which essentially does what mentioned in above but has some other features. The following commen line is equivalent to the steps decribed in above.

$ cd ZEPTO_DIR && ./mkprofile-ANL.sh --profile=YOUR_PROFILE_NAME 

Invoking it with the -h option shows help message. Use -c if you actually need to copy images instead of making symbolic link. Use -cn, -ion or -rd if you have a custom named image.

$ ./mkprofile-ANL.sh -h 
Usage: ./mkprofile-ANL.sh [OPTIONS]   
 
Options: 
-h             : Show this message 
-c             : Copy images instead of making symbolic link 
-f             : Overwrite exsiting profile  
--profile=name : Specify profile name 
--cn=fn        : Compute Node Kernel Image   
--ion=fn       : Specify I/O Node Kernel Image       
--rd=fn        : Specify I/O Node Ramdisk Image 
--ls           : show files in profile 
--dryrun  

Once you have properly configured your Zepto kernel profile, you can boot Zepto kernel by specifying your kernel profile name via the -k cobalt option.

$ cqsub -k YOUR_PROFILE_NAME .... 

MMCS console=

If no cobalt kernel profile feature is available on your BGP system, using MMCS console is choice. What you basically do by mmcs console is to assign Zepto kernels statatically to a partition you use.


Assign Zepto images to a BGP partition

Login to the service node and start MMCS

$ ssh sn         
sn $ ./mmcs.sh  
[mmcs.sh] 
#!/bin/sh 
 
export DB2HOME=/dbhome/bgpdb2c/sqllib 
DB2SRC=${DB2HOME}/db2profile 
[ -f "$DB2SRC" ] && . $DB2SRC 
 
cd /bgsys/drivers/ppcfloor/bin 
./mmcs_db_console 

Memorize that the current configuration. You need to revert the blockinfo to the original configuration after you have done using Zepto kernel.

console $ set_username YOUR_LOGIN_NAME 
console $ getblockinfo BGP_BLOCK_NAME 
OK 
boot info for block BGP_BLOCK_NAME: 
mloader: /bgsys/drivers/ppcfloor/boot/uloader 
cnloadImg: /bgsys/drivers/ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/cnk 
ioloadImg: /bgsys/drivers/ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/linux,/bgsys/drivers/ppcfloor/boot/ramdisk 
status: F 

Assign Zepto images to a parition

console $ setblockinfo BGP_BLOCK_NAME /bgsys/drivers/ppcfloor/boot/uloader /bgsys/drivers/ppcfloor/boot/cns,BGP_CN_LINUX_KERNEL_PATH /bgsys/drivers/ppcfloor\
/boot/cns,BGP_ION_LINUX_KERNEL_PATH,BGP_ION_LINUX_RAMDISK_PATH 
console $ quit 

Boot Zepto kernel

Once you have configured a partition with Zepto kernels correctly, Zepto kernels will be booted when you run a job on that partition(via mpirun for example)

fen $ mpirun -verbose 1 -partition BGP_BLOCK_NAME  -np 64 -timeout 600 -cwd `pwd` -exe ./a.out 

Restore to the original configuration(Don't forget!!!)

After you have done your work on Zepto kernel, you need to restore to the original configuration. Here is an example.

fen $ ssh sn 
sn $ ./mmcs.sh 
console $ set_username YOUR_LOGIN_NAME 
console $ setblockinfo BGP_BLOCK_NAME /bgsys/drivers/ppcfloor/boot/uloader /bgsys/drivers/ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/cnk /bgsys/drivers/\
ppcfloor/boot/cns,/bgsys/drivers/ppcfloor/boot/linux,/bgsys/drivers/ppcfloor/boot/ramdisk 
console $ quit