[Contents] [Prev. Chapter] [Next Section] [Index] [Help]

A    Frequently Asked Questions

This appendix contains answers to questions asked by programmers who use the MEMORY CHANNEL API to develop programs for TruCluster systems.


[Contents] [Prev. Chapter] [Next Section] [Index] [Help]

A.1    IMC_NOMAPPER Return Code

Question: An attempt was made to do an attach to a coherent region using the imc_asattach function. The function returned the value IMC_NOMAPPER. What does this mean?

Answer: This return value indicates that the imc_mapper process is missing from a system in your MEMORY CHANNEL API cluster.

The imc_mapper process is started automatically in the following cases:

To solve this problem, reboot the system from which the imc_mapper process is missing.

This error may occur if you shut down a system to single-user mode from init level 3, and then return the system to multi-user mode without doing a complete reboot. If you want to reboot a system that runs TruCluster MEMORY CHANNEL software, you must do a full reboot of that system.


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Index] [Help]

A.2    Efficient Data Copy

Question: How can data be copied to a MEMORY CHANNEL transmit region in order to obtain maximum MEMORY CHANNEL bandwidth?

Answer: The MEMORY CHANNEL API imc_bcopy function provides an efficient way of copying aligned or unaligned data to MEMORY CHANNEL. The imc_bcopy function has been optimized to make maximum use of the buffering capability of a DIGITAL Alpha CPU.

You can also use the imc_bcopy function to copy data efficiently between two buffers in standard memory.


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Index] [Help]

A.3    MEMORY CHANNEL Bandwidth Availability

Question: Is maximum MEMORY CHANNEL bandwidth available when using coherent MEMORY CHANNEL regions?

Answer: No. Coherent regions use the loopback feature to ensure local coherency. Therefore, every write data cycle has a corresponding cycle to loop the data back; this halves the available bandwidth. See Section 2.2.1.3 for more information about the loopback feature.


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Index] [Help]

A.4    MEMORY CHANNEL API Cluster Configuration Change

Question: How can a program determine whether a MEMORY CHANNEL API cluster configuration change has occurred?

Answer: The new imc_wait_cluster_event() function can be used to monitor hosts joining or leaving the MEMORY CHANNEL API cluster, or to monitor changes in the state of the active logical rails. You can write a program that calls the imc_wait_cluster_event() function in a separate thread; this blocks the caller until a state change occurs.


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Index] [Help]

A.5    Bus Error Message

Question: When a program tries to set a value in an attached transmit region, it crashes with the following message:

Bus error (core dumped)

Why does this happen?

Answer: The data type of the value may be smaller than 32 bits (in C, an int is a 32-bit data item, and a short is a 16-bit data item). The DIGITAL Alpha processor, like other RISC processors, reads and writes data in 64-bit units or 32-bit units. When you assign a value to a data item that is smaller than 32 bits, the compiler generates code that loads a 32-bit unit, changes the bytes that are to be modified, and then stores the entire 32-bit unit. If such a data item is in a MEMORY CHANNEL region attached for transmit, the assignment causes a read operation to occur in the attached area. Because transmit areas are write-only, a bus error is reported.

You can prevent this problem by ensuring that all accesses are done on 32-bit data items. See Section 2.2.3 for more information.


[Contents] [Prev. Chapter] [Prev. Section] [Next Section] [Index] [Help]

A.6    Deciding Which TruCluster Product To Use

Question: There are three TruCluster products. Which product should I use?

Answer: If your application requires high availability and access to disks on shared SCSI buses, and uses the Distributed Lock Manager (DLM) or Distributed Raw Disk (DRD) services, you should use the TruCluster Production Server product. You need MEMORY CHANNEL interconnect hardware and shared SCSI buses. Applications which require these features include certain database management systems. (The TruCluster Production Server product combines the features of the TruCluster Available Server product and the TruCluster MEMORY CHANNEL Software product.)

If your application requires high availability with management of failover of critical services to a backup system, you need the TruCluster Available Server product. You need shared SCSI buses, but the MEMORY CHANNEL interconnect is not supported. NFS is an example of a highly available service managed by TruCluster Available Server.

If your application requires a high bandwidth, low latency interconnect, you need the TruCluster MEMORY CHANNEL Software product. You need MEMORY CHANNEL interconnect hardware, but shared SCSI buses are not supported. The DIGITAL Parallel Software Environment (PSE) product is an example of an application that requires these features.


[Contents] [Prev. Chapter] [Prev. Section] [Index] [Help]

A.7    Finding Out More About MEMORY CHANNEL

Question: Where can I get more information about MEMORY CHANNEL?

Answer: You can find out more about MEMORY CHANNEL from the DIGITAL High Performance Technical Computing Web server, at the following URL:

http://www.digital.com/info/hpc

You may also mail your questions to: high-performance@digital.com


[Contents] [Prev. Chapter] [Prev. Section] [Index] [Help]