Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
E77790.pdf
Скачиваний:
2
Добавлен:
16.05.2024
Размер:
1.29 Mб
Скачать

2.5 Compiler Usage Tips

make is a very powerful program development tool that can easily be used with all Oracle Developer Studio compilers. See the make(1) man page.

Note - Default implicit rules assumed by make may not recognize files with extensions .f95 and

.mod (Module files).

2.5.3Memory Size

A compilation may need to use a lot of memory. This will depend on the optimization level chosen and the size and complexity of the files being compiled. If the optimizer runs out of memory, it tries to recover by retrying the current procedure at a lower level of optimization and resumes subsequent routines at the original level specified in the -On option on the command line.

A processor running the compiler should have at least 64 megabytes of memory; 256 megabytes are recommended. Enough swap space should also be allocated. 200 megabytes is the minimum; 300 megabytes is recommended.

Memory usage depends on the size of each procedure, the level of optimization, the limits set for virtual memory, the size of the disk swap file, and various other parameters.

Compiling a single source file containing many routines could cause the compiler to run out of memory or swap space.

If the compiler runs out of memory, try reducing the level of optimization, or split multipleroutine source files into files with one routine per file, using fsplit(1).

2.5.3.1Swap Space Limits

The Oracle Solaris operating system command, swap -s, displays available swap space. See swap(1M).

Example: Use the swap command:

demo% swap -s

total: 40236k bytes allocated + 7280k reserved = 47516k used, 1058708k available To determine the actual real memory:

demo% /usr/sbin/dmesg | grep mem mem = 655360K (0x28000000)

avail mem = 602476544

40 Oracle Developer Studio 12.6: Fortran User's Guide • July 2017

2.5 Compiler Usage Tips

2.5.3.2Increasing Swap Space

Use mkfile(1M) and swap(1M) to increase the size of the swap space on a workstation. You must become superuser to do this. mkfile creates a file of a specific size, and swap -a adds the file to the system swap space:

demo# mkfile -v 90m /home/swapfile

/home/swapfile 94317840 bytes

demo# /usr/sbin/swap -a /home/swapfile

2.5.3.3Control of Virtual Memory

Compiling very large routines (thousands of lines of code in a single procedure) at optimization level -O3 or higher may require additional memory that could degrade compile-time performance. You can control this by limiting the amount of virtual memory available to a single process.

In a sh shell, use the ulimit command. See sh(1).

Example: Limit virtual memory to 16 Mbytes:

demo$ ulimit -d 16000

In a csh shell, use the limit command. See csh(1).

Example: Limit virtual memory to 16 Mbytes:

demo% limit datasize 16M

Each of these command lines causes the optimizer to try to recover at 16 Mbytes of data space.

This limit cannot be greater than the system’s total available swap space and, in practice, must be small enough to permit normal use of the system while a large compilation is in progress. Be sure that no compilation consumes more than half the space.

Example: With 32 Mbytes of swap space, use the following commands:

In a sh shell:

demo$ ulimit -d 1600

In a csh shell:

demo% limit datasize 16M

The best setting depends on the degree of optimization requested and the amount of real and virtual memory available.

Chapter 2 • Using Oracle Developer Studio Fortran

41

Соседние файлы в предмете Информационные и сетевые технологии