.. _doc_features:

*******************************
Core Features and Functionality
*******************************

PETSc is a general parallel linear and non-linear solver, ODE integrator, and optimization framework, which provides these
general classes of functionality:

.. contents:: Table Of Contents
   :local:
   :backlinks: entry
   :depth: 1


Supported Systems
=================

- :ref:`HPC <doc_config_hpc>`
- :ref:`Linux <doc_config_faq>`
- :ref:`MacOS <doc_config_faq>`
- :ref:`Microsoft Windows <doc_windows>`

Accelerator/GPU Features
========================

- :ref:`Matrix/Vector CUDA support <doc_config_accel_cuda>`
- :ref:`Kokkos support <doc_config_accel_kokkos>`
- :ref:`Matrix/Vector OpenCL/ViennaCL support <doc_config_accel_opencl>`
- :ref:`Matrix/Vector HIP support <doc_gpu_roadmap>`

.. note::

   PETSc GPU support is under heavy development! See GPU support :ref:`roadmap
   <doc_gpu_roadmap>` for more information on current support.
