The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Linux::CPUAffinity - set and get a process's CPU affinity mask

SYNOPSIS

  use Linux::CPUAffinity;

  # get affinity of this process
  my $cpus = Linux::CPUAffinity->get(0); # eg: [0, 1, 2, 3]
  # other process
  my $cpus = Linux::CPUAffinity->get($pid);

  # set affinity of this process
  Linux::CPUAffinity->set(0 => [0,1]);
  # other process
  Linux::CPUAffinity->set($pid => [0]);

  # utility method to get processors
  my $num = Linux::CPUAffinity->num_processors();

DESCRIPTION

Linux::CPUAffinity is a wrapper module for Linux system call sched_getaffinity(2) and sched_setaffinity(2).

This module is only available on GNU/Linux.

METHODS

$cpus = $class->get($pid)

Get the CPU affinity mask of the process.

$class->set($pid, $cpus :ArrayRef[Int])

Set the CPU affinity mask of the process.

$num = $class->num_processors()

Get the number of processors currently online (available).

LICENSE

Copyright (C) Jiro Nishiguchi.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Jiro Nishiguchi <jiro@cpan.org>

SEE ALSO

Sys::CpuAffinity