Subdivision is used in modeling and rendering, as you are able to add detail and smooth geometry before you render. Postponing subdivision until rendering allows you to improve quality, reduce scene size, and decrease the amount of geometric data that needs to be sent to the renderer. However, it is important to note that subdivision surfaces take longer to render.
This is the original image that the following examples are based on:
Using subdivision at render time
Rendering with subdivision surfaces can be done through the renderer. Simply turn on the Polygons As Subdivisions checkbox on the Geometry sub-tab of the Render tab of the object. Mantra will automatically and accurately subdivide the surface until it is perfectly smooth based on the size of the pixels.
Using subdivision at the geometry level
You can perform subdivisions at the geometry level, rather than with mantra by using the Subdivide SOP. Using the subdivision surface node requires that you specify the number of subdivision levels in the geometry. Each additional level will add 4x the number of polygons to your model.
If you are using subdivision for rendering in mantra, turn on the Mantra-compatible Subdivision checkbox in the parameter editor of the subdivide node.
This image was rendered using 2 subdivision levels at the Geometry level:
Rendering with subdivision creases
Subdivision creases make it possible to selectively sharpen some edges during the subdivision process. To do this, you need to create a Crease surface node. In the parameter editor, specify the group of edges to crease and the crease weight.
This image was rendered with a crease weight of 3 on the end caps: