Gyu Sang Choi | 11 Jun 2004 21:58
Picon
Favicon

gm_dma_malloc

Hi,

I have one question about gm_dma_malloc or gm_register_memory.
I got a 16-node Linux cluster connected Myrinet.
While I already read FAQ about gm_dma_malloc, I still have a question 
about "gm_dma_malloc".

As I know, "gm_dma_malloc" mmaps  user-space memory into NIC memory.
Thus, I write something on mmaped memory, and it automatically updates 
NIC memory.

My myrinet card has 8MBytes on-chip memory.
As I understand, I can only mmap  8MBytes user-space memory because my 
NIC has only 8 Mbytes.
According to your FAQ, I can mmap 7/8 physical memory.
How can I mmap 7/8 physical system memory, while my NIC has only 8 Mbytes?
Is there anyway to access directly 8MBytes on-chip memory from a user 
application?

Best,

--

-- 

 ---------------------------------------------------------------
| Name   : Gyu Sang Choi					|
| Office : 358 IST Building                                     |
| Office Phone : (814)865-2729        	                        |	
| email  : gchoi <at> cse.psu.edu					|
| Home Phone : (814)861-6986				       	|
| Cell Phone : (814)880-3814                                    |
(Continue reading)

Patrick Geoffray | 11 Jun 2004 22:17

Re: gm_dma_malloc

Hi,

Gyu Sang Choi wrote:
> As I know, "gm_dma_malloc" mmaps  user-space memory into NIC memory.
> Thus, I write something on mmaped memory, and it automatically updates 
> NIC memory.

No, gm_dma_malloc does not do that. It allocates host memory and 
register it (pin it for DMA access). It is semantically equivalent to a 
simple malloc() followed by a gm_register_memory(). DMA-able memory 
means that the NIC can access it by DMA, that's all.

> My myrinet card has 8MBytes on-chip memory.
> As I understand, I can only mmap  8MBytes user-space memory because my 
> NIC has only 8 Mbytes.

No, the NIC memory is used for the firmware code and data, and some 
buffering, not to map the user space memory.

> According to your FAQ, I can mmap 7/8 physical memory.
> How can I mmap 7/8 physical system memory, while my NIC has only 8 Mbytes?

You can *register* 7/8 of the physical memory, not *mmap* it. When you 
register memory, the driver pins the pages and add their physical 
addresses in a hash table in the driver. Nothing goes to the NIC then. 
When the NIC needs to access memory that has been registered, it fetches 
the physical address from this hash (well, actually it is more 
complicated because there is a cache in the NIC).

> Is there anyway to access directly 8MBytes on-chip memory from a user 
(Continue reading)

Zaheerul Arefeen | 21 Jun 2004 19:12
Picon
Favicon

MPI_Comm

Hi,
I am trying to communicate between two different MPI
application having two different communicator using
the following API in a client server manner:

MPI_Open_port()
MPI_Comm_accept()
MPI_Comm_connect()
MPI_Comm_disconnect()

while compiling, i found the following errors. I
wonder if anyone can tell me if i am not doing it in
proper way or mpich-gm dont support this client/server
API.

mpiserver.o(.text+0x6a): In function `main':
: undefined reference to `MPI_Open_port'
mpiserver.o(.text+0xad): In function `main':
: undefined reference to `MPI_Comm_accept'
mpiserver.o(.text+0x148): In function `main':
: undefined reference to `MPI_Close_port'
mpiserver.o(.text+0x164): In function `main':
: undefined reference to `MPI_Comm_disconnect'
collect2: ld returned 1 exit status

Thanks,
Arefeen

__________________________________________________
Do You Yahoo!?
(Continue reading)

Susan Blackford | 21 Jun 2004 19:32

Re: MPI_Comm

Hi,

On Mon, 2004-06-21 at 13:12, Zaheerul Arefeen wrote:
> Hi,
> I am trying to communicate between two different MPI
> application having two different communicator using
> the following API in a client server manner:
> 
> MPI_Open_port()
> MPI_Comm_accept()
> MPI_Comm_connect()
> MPI_Comm_disconnect()
> 
> while compiling, i found the following errors. I
> wonder if anyone can tell me if i am not doing it in
> proper way or mpich-gm dont support this client/server
> API.
> 
> mpiserver.o(.text+0x6a): In function `main':
> : undefined reference to `MPI_Open_port'
> mpiserver.o(.text+0xad): In function `main':
> : undefined reference to `MPI_Comm_accept'
> mpiserver.o(.text+0x148): In function `main':
> : undefined reference to `MPI_Close_port'
> mpiserver.o(.text+0x164): In function `main':
> : undefined reference to `MPI_Comm_disconnect'
> collect2: ld returned 1 exit status

MPICH-GM does not currently support MPI-2 functionality.

(Continue reading)


Gmane